UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 25 kB
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"129:1978:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;129:1978:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"129:1978:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"TransientContext\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for transient storage.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/TransientContext.sol\":\"TransientContext\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/TransientContext.sol\":{\"keccak256\":\"0x7ae128d512768e928b3cd2d7604fcded205e5a99465360985fb0aaf985e888f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://555255ed8deedb8cb090d5f979b51356a98c12b259ec07664de33280d24738fd\",\"dweb:/ipfs/QmPUAfTpoqqUDEaRC2gRPr2CFbKSaz8J4yBQgLc9wM6Hss\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/TransientContext.sol":"TransientContext"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/libraries/TransientContext.sol":{"keccak256":"0x7ae128d512768e928b3cd2d7604fcded205e5a99465360985fb0aaf985e888f8","urls":["bzz-raw://555255ed8deedb8cb090d5f979b51356a98c12b259ec07664de33280d24738fd","dweb:/ipfs/QmPUAfTpoqqUDEaRC2gRPr2CFbKSaz8J4yBQgLc9wM6Hss"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for transient storage."},"devdoc":{"version":1,"kind":"dev","title":"TransientContext"},"ast":{"absolutePath":"src/libraries/TransientContext.sol","id":48702,"exportedSymbols":{"TransientContext":[48684],"TransientReentrancyAware":[48701]},"nodeType":"SourceUnit","src":"32:2496:30","nodes":[{"id":48638,"nodeType":"PragmaDirective","src":"32:24:30","nodes":[],"literals":["solidity","^","0.8",".24"]},{"id":48684,"nodeType":"ContractDefinition","src":"129:1978:30","nodes":[{"id":48643,"nodeType":"VariableDeclaration","src":"278:110:30","nodes":[],"constant":true,"documentation":{"id":48640,"nodeType":"StructuredDocumentation","src":"160:113:30","text":"@notice Slot for call depth.\n Equal to bytes32(uint256(keccak256(\"transient.calldepth\")) - 1)."},"mutability":"constant","name":"CALL_DEPTH_SLOT","nameLocation":"304:15:30","scope":48684,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307837613734666431363837363366643238306561656333626364326664363264306537393530323761646338313833613639336334393761376332623130623563","id":48642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"322:66:30","typeDescriptions":{"typeIdentifier":"t_rational_55388868535875649073547711647255167311425207837940097558979256947742365256540_by_1","typeString":"int_const 5538...(69 digits omitted)...6540"},"value":"0x7a74fd168763fd280eaec3bcd2fd62d0e795027adc8183a693c497a7c2b10b5c"},"visibility":"internal"},{"id":48651,"nodeType":"FunctionDefinition","src":"479:165:30","nodes":[],"body":{"id":48650,"nodeType":"Block","src":"543:101:30","nodes":[],"statements":[{"AST":{"nativeSrc":"578:60:30","nodeType":"YulBlock","src":"578:60:30","statements":[{"nativeSrc":"592:36:30","nodeType":"YulAssignment","src":"592:36:30","value":{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"612:15:30","nodeType":"YulIdentifier","src":"612:15:30"}],"functionName":{"name":"tload","nativeSrc":"606:5:30","nodeType":"YulIdentifier","src":"606:5:30"},"nativeSrc":"606:22:30","nodeType":"YulFunctionCall","src":"606:22:30"},"variableNames":[{"name":"callDepth_","nativeSrc":"592:10:30","nodeType":"YulIdentifier","src":"592:10:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":48643,"isOffset":false,"isSlot":false,"src":"612:15:30","valueSize":1},{"declaration":48647,"isOffset":false,"isSlot":false,"src":"592:10:30","valueSize":1}],"flags":["memory-safe"],"id":48649,"nodeType":"InlineAssembly","src":"553:85:30"}]},"documentation":{"id":48644,"nodeType":"StructuredDocumentation","src":"395:79:30","text":"@notice Gets the call depth.\n @return callDepth_ Current call depth."},"implemented":true,"kind":"function","modifiers":[],"name":"callDepth","nameLocation":"488:9:30","parameters":{"id":48645,"nodeType":"ParameterList","parameters":[],"src":"497:2:30"},"returnParameters":{"id":48648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48647,"mutability":"mutable","name":"callDepth_","nameLocation":"531:10:30","nodeType":"VariableDeclaration","scope":48651,"src":"523:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48646,"name":"uint256","nodeType":"ElementaryTypeName","src":"523:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"522:20:30"},"scope":48684,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48661,"nodeType":"FunctionDefinition","src":"810:241:30","nodes":[],"body":{"id":48660,"nodeType":"Block","src":"877:174:30","nodes":[],"statements":[{"AST":{"nativeSrc":"912:133:30","nodeType":"YulBlock","src":"912:133:30","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"933:1:30","nodeType":"YulLiteral","src":"933:1:30","type":"","value":"0"},{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"942:15:30","nodeType":"YulIdentifier","src":"942:15:30"}],"functionName":{"name":"tload","nativeSrc":"936:5:30","nodeType":"YulIdentifier","src":"936:5:30"},"nativeSrc":"936:22:30","nodeType":"YulFunctionCall","src":"936:22:30"}],"functionName":{"name":"mstore","nativeSrc":"926:6:30","nodeType":"YulIdentifier","src":"926:6:30"},"nativeSrc":"926:33:30","nodeType":"YulFunctionCall","src":"926:33:30"},"nativeSrc":"926:33:30","nodeType":"YulExpressionStatement","src":"926:33:30"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"979:2:30","nodeType":"YulLiteral","src":"979:2:30","type":"","value":"32"},{"name":"_slot","nativeSrc":"983:5:30","nodeType":"YulIdentifier","src":"983:5:30"}],"functionName":{"name":"mstore","nativeSrc":"972:6:30","nodeType":"YulIdentifier","src":"972:6:30"},"nativeSrc":"972:17:30","nodeType":"YulFunctionCall","src":"972:17:30"},"nativeSrc":"972:17:30","nodeType":"YulExpressionStatement","src":"972:17:30"},{"nativeSrc":"1002:33:30","nodeType":"YulAssignment","src":"1002:33:30","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1028:1:30","nodeType":"YulLiteral","src":"1028:1:30","type":"","value":"0"},{"kind":"number","nativeSrc":"1031:2:30","nodeType":"YulLiteral","src":"1031:2:30","type":"","value":"64"}],"functionName":{"name":"keccak256","nativeSrc":"1018:9:30","nodeType":"YulIdentifier","src":"1018:9:30"},"nativeSrc":"1018:16:30","nodeType":"YulFunctionCall","src":"1018:16:30"}],"functionName":{"name":"tload","nativeSrc":"1012:5:30","nodeType":"YulIdentifier","src":"1012:5:30"},"nativeSrc":"1012:23:30","nodeType":"YulFunctionCall","src":"1012:23:30"},"variableNames":[{"name":"value_","nativeSrc":"1002:6:30","nodeType":"YulIdentifier","src":"1002:6:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":48643,"isOffset":false,"isSlot":false,"src":"942:15:30","valueSize":1},{"declaration":48654,"isOffset":false,"isSlot":false,"src":"983:5:30","valueSize":1},{"declaration":48657,"isOffset":false,"isSlot":false,"src":"1002:6:30","valueSize":1}],"flags":["memory-safe"],"id":48659,"nodeType":"InlineAssembly","src":"887:158:30"}]},"documentation":{"id":48652,"nodeType":"StructuredDocumentation","src":"650:155:30","text":"@notice Gets value in transient storage for a slot at the current call depth.\n @param _slot Slot to get.\n @return value_ Transient value."},"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"819:3:30","parameters":{"id":48655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48654,"mutability":"mutable","name":"_slot","nameLocation":"831:5:30","nodeType":"VariableDeclaration","scope":48661,"src":"823:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"823:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"822:15:30"},"returnParameters":{"id":48658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48657,"mutability":"mutable","name":"value_","nameLocation":"869:6:30","nodeType":"VariableDeclaration","scope":48661,"src":"861:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48656,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"860:16:30"},"scope":48684,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48671,"nodeType":"FunctionDefinition","src":"1220:226:30","nodes":[],"body":{"id":48670,"nodeType":"Block","src":"1273:173:30","nodes":[],"statements":[{"AST":{"nativeSrc":"1308:132:30","nodeType":"YulBlock","src":"1308:132:30","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1329:1:30","nodeType":"YulLiteral","src":"1329:1:30","type":"","value":"0"},{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"1338:15:30","nodeType":"YulIdentifier","src":"1338:15:30"}],"functionName":{"name":"tload","nativeSrc":"1332:5:30","nodeType":"YulIdentifier","src":"1332:5:30"},"nativeSrc":"1332:22:30","nodeType":"YulFunctionCall","src":"1332:22:30"}],"functionName":{"name":"mstore","nativeSrc":"1322:6:30","nodeType":"YulIdentifier","src":"1322:6:30"},"nativeSrc":"1322:33:30","nodeType":"YulFunctionCall","src":"1322:33:30"},"nativeSrc":"1322:33:30","nodeType":"YulExpressionStatement","src":"1322:33:30"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1375:2:30","nodeType":"YulLiteral","src":"1375:2:30","type":"","value":"32"},{"name":"_slot","nativeSrc":"1379:5:30","nodeType":"YulIdentifier","src":"1379:5:30"}],"functionName":{"name":"mstore","nativeSrc":"1368:6:30","nodeType":"YulIdentifier","src":"1368:6:30"},"nativeSrc":"1368:17:30","nodeType":"YulFunctionCall","src":"1368:17:30"},"nativeSrc":"1368:17:30","nodeType":"YulExpressionStatement","src":"1368:17:30"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1415:1:30","nodeType":"YulLiteral","src":"1415:1:30","type":"","value":"0"},{"kind":"number","nativeSrc":"1418:2:30","nodeType":"YulLiteral","src":"1418:2:30","type":"","value":"64"}],"functionName":{"name":"keccak256","nativeSrc":"1405:9:30","nodeType":"YulIdentifier","src":"1405:9:30"},"nativeSrc":"1405:16:30","nodeType":"YulFunctionCall","src":"1405:16:30"},{"name":"_value","nativeSrc":"1423:6:30","nodeType":"YulIdentifier","src":"1423:6:30"}],"functionName":{"name":"tstore","nativeSrc":"1398:6:30","nodeType":"YulIdentifier","src":"1398:6:30"},"nativeSrc":"1398:32:30","nodeType":"YulFunctionCall","src":"1398:32:30"},"nativeSrc":"1398:32:30","nodeType":"YulExpressionStatement","src":"1398:32:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":48643,"isOffset":false,"isSlot":false,"src":"1338:15:30","valueSize":1},{"declaration":48664,"isOffset":false,"isSlot":false,"src":"1379:5:30","valueSize":1},{"declaration":48666,"isOffset":false,"isSlot":false,"src":"1423:6:30","valueSize":1}],"flags":["memory-safe"],"id":48669,"nodeType":"InlineAssembly","src":"1283:157:30"}]},"documentation":{"id":48662,"nodeType":"StructuredDocumentation","src":"1057:158:30","text":"@notice Sets a value in transient storage for a slot at the current call depth.\n @param _slot Slot to set.\n @param _value Value to set."},"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"1229:3:30","parameters":{"id":48667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48664,"mutability":"mutable","name":"_slot","nameLocation":"1241:5:30","nodeType":"VariableDeclaration","scope":48671,"src":"1233:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1233:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48666,"mutability":"mutable","name":"_value","nameLocation":"1256:6:30","nodeType":"VariableDeclaration","scope":48671,"src":"1248:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48665,"name":"uint256","nodeType":"ElementaryTypeName","src":"1248:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1232:31:30"},"returnParameters":{"id":48668,"nodeType":"ParameterList","parameters":[],"src":"1273:0:30"},"scope":48684,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48677,"nodeType":"FunctionDefinition","src":"1625:150:30","nodes":[],"body":{"id":48676,"nodeType":"Block","src":"1655:120:30","nodes":[],"statements":[{"AST":{"nativeSrc":"1690:79:30","nodeType":"YulBlock","src":"1690:79:30","statements":[{"expression":{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"1711:15:30","nodeType":"YulIdentifier","src":"1711:15:30"},{"arguments":[{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"1738:15:30","nodeType":"YulIdentifier","src":"1738:15:30"}],"functionName":{"name":"tload","nativeSrc":"1732:5:30","nodeType":"YulIdentifier","src":"1732:5:30"},"nativeSrc":"1732:22:30","nodeType":"YulFunctionCall","src":"1732:22:30"},{"kind":"number","nativeSrc":"1756:1:30","nodeType":"YulLiteral","src":"1756:1:30","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1728:3:30","nodeType":"YulIdentifier","src":"1728:3:30"},"nativeSrc":"1728:30:30","nodeType":"YulFunctionCall","src":"1728:30:30"}],"functionName":{"name":"tstore","nativeSrc":"1704:6:30","nodeType":"YulIdentifier","src":"1704:6:30"},"nativeSrc":"1704:55:30","nodeType":"YulFunctionCall","src":"1704:55:30"},"nativeSrc":"1704:55:30","nodeType":"YulExpressionStatement","src":"1704:55:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":48643,"isOffset":false,"isSlot":false,"src":"1711:15:30","valueSize":1},{"declaration":48643,"isOffset":false,"isSlot":false,"src":"1738:15:30","valueSize":1}],"flags":["memory-safe"],"id":48675,"nodeType":"InlineAssembly","src":"1665:104:30"}]},"documentation":{"id":48672,"nodeType":"StructuredDocumentation","src":"1452:168:30","text":"@notice Increments call depth.\n This function can overflow. However, this is ok because there's still\n only one value stored per slot."},"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"1634:9:30","parameters":{"id":48673,"nodeType":"ParameterList","parameters":[],"src":"1643:2:30"},"returnParameters":{"id":48674,"nodeType":"ParameterList","parameters":[],"src":"1655:0:30"},"scope":48684,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48683,"nodeType":"FunctionDefinition","src":"1955:150:30","nodes":[],"body":{"id":48682,"nodeType":"Block","src":"1985:120:30","nodes":[],"statements":[{"AST":{"nativeSrc":"2020:79:30","nodeType":"YulBlock","src":"2020:79:30","statements":[{"expression":{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"2041:15:30","nodeType":"YulIdentifier","src":"2041:15:30"},{"arguments":[{"arguments":[{"name":"CALL_DEPTH_SLOT","nativeSrc":"2068:15:30","nodeType":"YulIdentifier","src":"2068:15:30"}],"functionName":{"name":"tload","nativeSrc":"2062:5:30","nodeType":"YulIdentifier","src":"2062:5:30"},"nativeSrc":"2062:22:30","nodeType":"YulFunctionCall","src":"2062:22:30"},{"kind":"number","nativeSrc":"2086:1:30","nodeType":"YulLiteral","src":"2086:1:30","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2058:3:30","nodeType":"YulIdentifier","src":"2058:3:30"},"nativeSrc":"2058:30:30","nodeType":"YulFunctionCall","src":"2058:30:30"}],"functionName":{"name":"tstore","nativeSrc":"2034:6:30","nodeType":"YulIdentifier","src":"2034:6:30"},"nativeSrc":"2034:55:30","nodeType":"YulFunctionCall","src":"2034:55:30"},"nativeSrc":"2034:55:30","nodeType":"YulExpressionStatement","src":"2034:55:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":48643,"isOffset":false,"isSlot":false,"src":"2041:15:30","valueSize":1},{"declaration":48643,"isOffset":false,"isSlot":false,"src":"2068:15:30","valueSize":1}],"flags":["memory-safe"],"id":48681,"nodeType":"InlineAssembly","src":"1995:104:30"}]},"documentation":{"id":48678,"nodeType":"StructuredDocumentation","src":"1781:169:30","text":"@notice Decrements call depth.\n This function can underflow. However, this is ok because there's still\n only one value stored per slot."},"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1964:9:30","parameters":{"id":48679,"nodeType":"ParameterList","parameters":[],"src":"1973:2:30"},"returnParameters":{"id":48680,"nodeType":"ParameterList","parameters":[],"src":"1985:0:30"},"scope":48684,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TransientContext","contractDependencies":[],"contractKind":"library","documentation":{"id":48639,"nodeType":"StructuredDocumentation","src":"58:71:30","text":"@title TransientContext\n @notice Library for transient storage."},"fullyImplemented":true,"linearizedBaseContracts":[48684],"name":"TransientContext","nameLocation":"137:16:30","scope":48702,"usedErrors":[],"usedEvents":[]},{"id":48701,"nodeType":"ContractDefinition","src":"2303:224:30","nodes":[{"id":48700,"nodeType":"ModifierDefinition","src":"2405:120:30","nodes":[],"body":{"id":48699,"nodeType":"Block","src":"2431:94:30","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48688,"name":"TransientContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"2441:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransientContext_$48684_$","typeString":"type(library TransientContext)"}},"id":48690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2458:9:30","memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"2441:26:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":48691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2441:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48692,"nodeType":"ExpressionStatement","src":"2441:28:30"},{"id":48693,"nodeType":"PlaceholderStatement","src":"2479:1:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48694,"name":"TransientContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"2490:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransientContext_$48684_$","typeString":"type(library TransientContext)"}},"id":48696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2507:9:30","memberName":"decrement","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"2490:26:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":48697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48698,"nodeType":"ExpressionStatement","src":"2490:28:30"}]},"documentation":{"id":48686,"nodeType":"StructuredDocumentation","src":"2343:57:30","text":"@notice Modifier to make a function reentrancy-aware."},"name":"reentrantAware","nameLocation":"2414:14:30","parameters":{"id":48687,"nodeType":"ParameterList","parameters":[],"src":"2428:2:30"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TransientReentrancyAware","contractDependencies":[],"contractKind":"contract","documentation":{"id":48685,"nodeType":"StructuredDocumentation","src":"2109:194:30","text":"@title TransientReentrancyAware\n @notice Reentrancy-aware modifier for transient storage, which increments and\n decrements the call depth when entering and exiting a function."},"fullyImplemented":true,"linearizedBaseContracts":[48701],"name":"TransientReentrancyAware","nameLocation":"2312:24:30","scope":48702,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":30}