@tokamak-network/thanos-contracts
Version:
1 lines • 56.1 kB
JSON
{"abi":[{"type":"function","name":"lastCall","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506103e38061001d5f395ff3fe608060405260043610610028575f3560e01c8063266cf1091461002c578063da516aa914610036575b5f80fd5b610034610063565b005b348015610041575f80fd5b5061004a6100a6565b60405161005a949392919061015d565b60405180910390f35b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009b903690836102be565b505a60025534600355565b5f80546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d09061021f565b80601f01602080910402602001604051908101604052809291908181526020018280546100fc9061021f565b80156101475780601f1061011e57610100808354040283529160200191610147565b820191905f5260205f20905b81548152906001019060200180831161012a57829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff851681525f602060808184015285518060808501525f5b818110156101a55787810183015185820160a001528201610189565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061023357607f821691505b60208210810361026a577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f8211156102b9575f81815260208120601f850160051c810160208610156102965750805b601f850160051c820191505b818110156102b5578281556001016102a2565b5050505b505050565b67ffffffffffffffff8311156102d6576102d66101f2565b6102ea836102e4835461021f565b83610270565b5f601f84116001811461033a575f85156103045750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103cf565b5f838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103885786850135825560209485019460019092019101610368565b50868210156103c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c6343000814000a","sourceMap":"57:360:88:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610028575f3560e01c8063266cf1091461002c578063da516aa914610036575b5f80fd5b610034610063565b005b348015610041575f80fd5b5061004a6100a6565b60405161005a949392919061015d565b60405180910390f35b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009b903690836102be565b505a60025534600355565b5f80546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d09061021f565b80601f01602080910402602001604051908101604052809291908181526020018280546100fc9061021f565b80156101475780601f1061011e57610100808354040283529160200191610147565b820191905f5260205f20905b81548152906001019060200180831161012a57829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff851681525f602060808184015285518060808501525f5b818110156101a55787810183015185820160a001528201610189565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061023357607f821691505b60208210810361026a577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f8211156102b9575f81815260208120601f850160051c810160208610156102965750805b601f850160051c820191505b818110156102b5578281556001016102a2565b5050505b505050565b67ffffffffffffffff8311156102d6576102d66101f2565b6102ea836102e4835461021f565b83610270565b5f601f84116001811461033a575f85156103045750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103cf565b5f838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103885786850135825560209485019460019092019101610368565b50868210156103c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c6343000814000a","sourceMap":"57:360:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;233:182;;;:::i;:::-;;202:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;233:182;276:8;:28;;;;294:10;276:28;;;;;314:24;;330:8;;276:28;314:24;:::i;:::-;;363:9;348:12;:24;399:9;382:14;:26;233:182::o;202:24::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:872:96:-;257:42;249:6;245:55;234:9;227:74;208:4;320:2;358:3;353:2;342:9;338:18;331:31;391:6;385:13;435:6;429:3;418:9;414:19;407:35;460:1;470:141;484:6;481:1;478:13;470:141;;;580:14;;;576:23;;570:30;545:17;;;564:3;541:27;534:67;499:10;;470:141;;;474:3;661:1;655:3;646:6;635:9;631:22;627:32;620:43;790:3;720:66;715:2;707:6;703:15;699:88;688:9;684:104;680:114;672:122;;;;830:6;825:2;814:9;810:18;803:34;873:6;868:2;857:9;853:18;846:34;14:872;;;;;;;:::o;891:184::-;943:77;940:1;933:88;1040:4;1037:1;1030:15;1064:4;1061:1;1054:15;1080:437;1159:1;1155:12;;;;1202;;;1223:61;;1277:4;1269:6;1265:17;1255:27;;1223:61;1330:2;1322:6;1319:14;1299:18;1296:38;1293:218;;1367:77;1364:1;1357:88;1468:4;1465:1;1458:15;1496:4;1493:1;1486:15;1293:218;;1080:437;;;:::o;1647:544::-;1748:2;1743:3;1740:11;1737:448;;;1784:1;1809:5;1805:2;1798:17;1854:4;1850:2;1840:19;1924:2;1912:10;1908:19;1905:1;1901:27;1895:4;1891:38;1960:4;1948:10;1945:20;1942:47;;;-1:-1:-1;1983:4:96;1942:47;2038:2;2033:3;2029:12;2026:1;2022:20;2016:4;2012:31;2002:41;;2093:82;2111:2;2104:5;2101:13;2093:82;;;2156:17;;;2137:1;2126:13;2093:82;;;2097:3;;;1737:448;1647:544;;;:::o;2427:1321::-;2549:18;2544:3;2541:27;2538:53;;;2571:18;;:::i;:::-;2600:93;2689:3;2649:38;2681:4;2675:11;2649:38;:::i;:::-;2643:4;2600:93;:::i;:::-;2719:1;2744:2;2739:3;2736:11;2761:1;2756:734;;;;3534:1;3551:3;3548:93;;;-1:-1:-1;3607:19:96;;;3594:33;3548:93;2333:66;2324:1;2320:11;;;2316:84;2312:89;2302:100;2408:1;2404:11;;;2299:117;3654:78;;2729:1013;;2756:734;1594:1;1587:14;;;1631:4;1618:18;;2801:66;2792:76;;;2951:9;2973:229;2987:7;2984:1;2981:14;2973:229;;;3076:19;;;3063:33;3048:49;;3183:4;3168:20;;;;3136:1;3124:14;;;;3003:12;2973:229;;;2977:3;3230;3221:7;3218:16;3215:219;;;3350:66;3344:3;3338;3335:1;3331:11;3327:21;3323:94;3319:99;3306:9;3301:3;3297:19;3284:33;3280:139;3272:6;3265:155;3215:219;;;3477:1;3471:3;3468:1;3464:11;3460:19;3454:4;3447:33;2729:1013;;;2427:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"lastCall()":"da516aa9","record()":"266cf109"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"lastCall\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallRecorder\"},\"evmVersion\":\"shanghai\",\"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\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"lastCall","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"record"}],"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":{"test/mocks/Callers.sol":"CallRecorder"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":63640,"contract":"test/mocks/Callers.sol:CallRecorder","label":"lastCall","offset":0,"slot":"0","type":"t_struct(CallInfo)63637_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_struct(CallInfo)63637_storage":{"encoding":"inplace","label":"struct CallRecorder.CallInfo","numberOfBytes":"128","members":[{"astId":63630,"contract":"test/mocks/Callers.sol:CallRecorder","label":"sender","offset":0,"slot":"0","type":"t_address"},{"astId":63632,"contract":"test/mocks/Callers.sol:CallRecorder","label":"data","offset":0,"slot":"1","type":"t_bytes_storage"},{"astId":63634,"contract":"test/mocks/Callers.sol:CallRecorder","label":"gas","offset":0,"slot":"2","type":"t_uint256"},{"astId":63636,"contract":"test/mocks/Callers.sol:CallRecorder","label":"value","offset":0,"slot":"3","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/mocks/Callers.sol","id":63811,"exportedSymbols":{"CallRecorder":[63673],"CallerCaller":[63702],"ConfigurableCaller":[63793],"Reverter":[63810]},"nodeType":"SourceUnit","src":"32:2555:88","nodes":[{"id":63628,"nodeType":"PragmaDirective","src":"32:23:88","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63673,"nodeType":"ContractDefinition","src":"57:360:88","nodes":[{"id":63637,"nodeType":"StructDefinition","src":"85:111:88","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":63630,"mutability":"mutable","name":"sender","nameLocation":"119:6:88","nodeType":"VariableDeclaration","scope":63637,"src":"111:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63629,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":63632,"mutability":"mutable","name":"data","nameLocation":"141:4:88","nodeType":"VariableDeclaration","scope":63637,"src":"135:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":63631,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":63634,"mutability":"mutable","name":"gas","nameLocation":"163:3:88","nodeType":"VariableDeclaration","scope":63637,"src":"155:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63633,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":63636,"mutability":"mutable","name":"value","nameLocation":"184:5:88","nodeType":"VariableDeclaration","scope":63637,"src":"176:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63635,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:88","scope":63673,"visibility":"public"},{"id":63640,"nodeType":"VariableDeclaration","src":"202:24:88","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:88","scope":63673,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":63639,"nodeType":"UserDefinedTypeName","pathNode":{"id":63638,"name":"CallInfo","nameLocations":["202:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":63637,"src":"202:8:88"},"referencedDeclaration":63637,"src":"202:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":63672,"nodeType":"FunctionDefinition","src":"233:182:88","nodes":[],"body":{"id":63671,"nodeType":"Block","src":"266:149:88","nodes":[],"statements":[{"expression":{"id":63648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":63643,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63640,"src":"276:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":63645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"285:6:88","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":63630,"src":"276:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":63646,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"298:6:88","memberName":"sender","nodeType":"MemberAccess","src":"294:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":63649,"nodeType":"ExpressionStatement","src":"276:28:88"},{"expression":{"id":63655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":63650,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63640,"src":"314:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":63652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"323:4:88","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":63632,"src":"314:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":63653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"334:4:88","memberName":"data","nodeType":"MemberAccess","src":"330:8:88","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":63656,"nodeType":"ExpressionStatement","src":"314:24:88"},{"expression":{"id":63662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":63657,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63640,"src":"348:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":63659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"357:3:88","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":63634,"src":"348:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":63660,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:88","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":63661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"363:9:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":63663,"nodeType":"ExpressionStatement","src":"348:24:88"},{"expression":{"id":63669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":63664,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63640,"src":"382:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$63637_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":63666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"391:5:88","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":63636,"src":"382:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":63667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"403:5:88","memberName":"value","nodeType":"MemberAccess","src":"399:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":63670,"nodeType":"ExpressionStatement","src":"382:26:88"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:88","parameters":{"id":63641,"nodeType":"ParameterList","parameters":[],"src":"248:2:88"},"returnParameters":{"id":63642,"nodeType":"ParameterList","parameters":[],"src":"266:0:88"},"scope":63673,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[63673],"name":"CallRecorder","nameLocation":"66:12:88","scope":63811,"usedErrors":[],"usedEvents":[]},{"id":63702,"nodeType":"ContractDefinition","src":"465:440:88","nodes":[{"id":63680,"nodeType":"EventDefinition","src":"493:51:88","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:88","parameters":{"id":63679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63676,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:88","nodeType":"VariableDeclaration","scope":63680,"src":"512:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63675,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":63678,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:88","nodeType":"VariableDeclaration","scope":63680,"src":"526:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":63677,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:88"}},{"id":63701,"nodeType":"FunctionDefinition","src":"550:353:88","nodes":[],"body":{"id":63700,"nodeType":"Block","src":"570:333:88","nodes":[],"statements":[{"assignments":[63684,63686],"declarations":[{"constant":false,"id":63684,"mutability":"mutable","name":"success","nameLocation":"586:7:88","nodeType":"VariableDeclaration","scope":63700,"src":"581:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63683,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":63686,"mutability":"mutable","name":"returndata","nameLocation":"608:10:88","nodeType":"VariableDeclaration","scope":63700,"src":"595:23:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":63685,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":63693,"initialValue":{"arguments":[{"expression":{"id":63690,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"642:4:88","memberName":"data","nodeType":"MemberAccess","src":"638:8:88","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":63687,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"626:6:88","memberName":"sender","nodeType":"MemberAccess","src":"622:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":63689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"633:4:88","memberName":"call","nodeType":"MemberAccess","src":"622:15:88","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":63692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"622:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:88"},{"eventCall":{"arguments":[{"id":63695,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63684,"src":"675:7:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":63696,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63686,"src":"684:10:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":63694,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63680,"src":"662:12:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":63697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63698,"nodeType":"EmitStatement","src":"657:38:88"},{"AST":{"nodeType":"YulBlock","src":"714:183:88","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:88","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:88"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:88"},"nodeType":"YulFunctionCall","src":"771:21:88"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:88"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:88"},"nodeType":"YulFunctionCall","src":"794:17:88"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:88"},"nodeType":"YulFunctionCall","src":"764:48:88"},"nodeType":"YulExpressionStatement","src":"764:48:88"}]},"nodeType":"YulCase","src":"755:59:88","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:88","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:88","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:88"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:88"},"nodeType":"YulFunctionCall","src":"844:21:88"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:88"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:88"},"nodeType":"YulFunctionCall","src":"867:17:88"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:88"},"nodeType":"YulFunctionCall","src":"837:48:88"},"nodeType":"YulExpressionStatement","src":"837:48:88"}]},"nodeType":"YulCase","src":"827:60:88","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:88"},"nodeType":"YulSwitch","src":"728:159:88"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":63686,"isOffset":false,"isSlot":false,"src":"775:10:88","valueSize":1},{"declaration":63686,"isOffset":false,"isSlot":false,"src":"800:10:88","valueSize":1},{"declaration":63686,"isOffset":false,"isSlot":false,"src":"848:10:88","valueSize":1},{"declaration":63686,"isOffset":false,"isSlot":false,"src":"873:10:88","valueSize":1},{"declaration":63684,"isOffset":false,"isSlot":false,"src":"735:7:88","valueSize":1}],"id":63699,"nodeType":"InlineAssembly","src":"705:192:88"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":63681,"nodeType":"ParameterList","parameters":[],"src":"558:2:88"},"returnParameters":{"id":63682,"nodeType":"ParameterList","parameters":[],"src":"570:0:88"},"scope":63702,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":63674,"nodeType":"StructuredDocumentation","src":"419:46:88","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[63702],"name":"CallerCaller","nameLocation":"474:12:88","scope":63811,"usedErrors":[],"usedEvents":[63680]},{"id":63793,"nodeType":"ContractDefinition","src":"992:1409:88","nodes":[{"id":63706,"nodeType":"VariableDeclaration","src":"1026:20:88","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:88","scope":63793,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63704,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":63705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":63708,"nodeType":"VariableDeclaration","src":"1052:14:88","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:88","scope":63793,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63707,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":63710,"nodeType":"VariableDeclaration","src":"1072:13:88","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:88","scope":63793,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":63709,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":63716,"nodeType":"EventDefinition","src":"1092:51:88","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:88","parameters":{"id":63715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63712,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:88","nodeType":"VariableDeclaration","scope":63716,"src":"1111:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63711,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":63714,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:88","nodeType":"VariableDeclaration","scope":63716,"src":"1125:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":63713,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:88"}},{"id":63747,"nodeType":"FunctionDefinition","src":"1231:491:88","nodes":[],"body":{"id":63746,"nodeType":"Block","src":"1256:466:88","nodes":[],"statements":[{"condition":{"id":63720,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63706,"src":"1270:8:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":63744,"nodeType":"Block","src":"1347:369:88","statements":[{"assignments":[63727,63729],"declarations":[{"constant":false,"id":63727,"mutability":"mutable","name":"success","nameLocation":"1367:7:88","nodeType":"VariableDeclaration","scope":63744,"src":"1362:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63726,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":63729,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:88","nodeType":"VariableDeclaration","scope":63744,"src":"1376:23:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":63728,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":63737,"initialValue":{"arguments":[{"id":63735,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63710,"src":"1424:7:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":63732,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63708,"src":"1411:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63730,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:88","typeDescriptions":{}}},"id":63733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":63734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1419:4:88","memberName":"call","nodeType":"MemberAccess","src":"1403:20:88","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":63736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:88"},{"eventCall":{"arguments":[{"id":63739,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63727,"src":"1464:7:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":63740,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63729,"src":"1473:10:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":63738,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"1451:12:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":63741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63742,"nodeType":"EmitStatement","src":"1446:38:88"},{"AST":{"nodeType":"YulBlock","src":"1507:199:88","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:88","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:88"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:88"},"nodeType":"YulFunctionCall","src":"1572:21:88"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:88"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:88"},"nodeType":"YulFunctionCall","src":"1595:17:88"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:88"},"nodeType":"YulFunctionCall","src":"1565:48:88"},"nodeType":"YulExpressionStatement","src":"1565:48:88"}]},"nodeType":"YulCase","src":"1556:59:88","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:88","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:88","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:88"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:88"},"nodeType":"YulFunctionCall","src":"1649:21:88"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:88"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:88"},"nodeType":"YulFunctionCall","src":"1672:17:88"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:88"},"nodeType":"YulFunctionCall","src":"1642:48:88"},"nodeType":"YulExpressionStatement","src":"1642:48:88"}]},"nodeType":"YulCase","src":"1632:60:88","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:88"},"nodeType":"YulSwitch","src":"1525:167:88"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":63729,"isOffset":false,"isSlot":false,"src":"1576:10:88","valueSize":1},{"declaration":63729,"isOffset":false,"isSlot":false,"src":"1601:10:88","valueSize":1},{"declaration":63729,"isOffset":false,"isSlot":false,"src":"1653:10:88","valueSize":1},{"declaration":63729,"isOffset":false,"isSlot":false,"src":"1678:10:88","valueSize":1},{"declaration":63727,"isOffset":false,"isSlot":false,"src":"1532:7:88","valueSize":1}],"id":63743,"nodeType":"InlineAssembly","src":"1498:208:88"}]},"id":63745,"nodeType":"IfStatement","src":"1266:450:88","trueBody":{"id":63725,"nodeType":"Block","src":"1280:61:88","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":63722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":63721,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:88","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":63723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63724,"nodeType":"ExpressionStatement","src":"1294:36:88"}]}}]},"documentation":{"id":63717,"nodeType":"StructuredDocumentation","src":"1149:77:88","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:88","parameters":{"id":63718,"nodeType":"ParameterList","parameters":[],"src":"1244:2:88"},"returnParameters":{"id":63719,"nodeType":"ParameterList","parameters":[],"src":"1256:0:88"},"scope":63793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":63758,"nodeType":"FunctionDefinition","src":"1786:83:88","nodes":[],"body":{"id":63757,"nodeType":"Block","src":"1832:37:88","nodes":[],"statements":[{"expression":{"id":63755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63753,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63706,"src":"1842:8:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":63754,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63750,"src":"1853:9:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":63756,"nodeType":"ExpressionStatement","src":"1842:20:88"}]},"documentation":{"id":63748,"nodeType":"StructuredDocumentation","src":"1728:53:88","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:88","parameters":{"id":63751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63750,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:88","nodeType":"VariableDeclaration","scope":63758,"src":"1807:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":63749,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:88"},"returnParameters":{"id":63752,"nodeType":"ParameterList","parameters":[],"src":"1832:0:88"},"scope":63793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":63769,"nodeType":"FunctionDefinition","src":"1935:78:88","nodes":[],"body":{"id":63768,"nodeType":"Block","src":"1980:33:88","nodes":[],"statements":[{"expression":{"id":63766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63764,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63708,"src":"1990:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":63765,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63761,"src":"1999:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":63767,"nodeType":"ExpressionStatement","src":"1990:16:88"}]},"documentation":{"id":63759,"nodeType":"StructuredDocumentation","src":"1875:55:88","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:88","parameters":{"id":63762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63761,"mutability":"mutable","name":"_target","nameLocation":"1962:7:88","nodeType":"VariableDeclaration","scope":63769,"src":"1954:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63760,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:88"},"returnParameters":{"id":63763,"nodeType":"ParameterList","parameters":[],"src":"1980:0:88"},"scope":63793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":63780,"nodeType":"FunctionDefinition","src":"2080:89:88","nodes":[],"body":{"id":63779,"nodeType":"Block","src":"2134:35:88","nodes":[],"statements":[{"expression":{"id":63777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63775,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63710,"src":"2144:7:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":63776,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63772,"src":"2154:8:88","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":63778,"nodeType":"ExpressionStatement","src":"2144:18:88"}]},"documentation":{"id":63770,"nodeType":"StructuredDocumentation","src":"2019:56:88","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:88","parameters":{"id":63773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63772,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:88","nodeType":"VariableDeclaration","scope":63780,"src":"2100:23:88","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":63771,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:88"},"returnParameters":{"id":63774,"nodeType":"ParameterList","parameters":[],"src":"2134:0:88"},"scope":63793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":63792,"nodeType":"FunctionDefinition","src":"2288:111:88","nodes":[],"body":{"id":63791,"nodeType":"Block","src