UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 56.2 kB
{"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":"0x608060405234801561001057600080fd5b506103fe806100206000396000f3fe6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:375:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:375:-: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:921:416:-;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;;;629:6;626:1;623:13;620:92;;;700:1;694:3;685:6;674:9;670:22;666:32;659:43;620:92;;839:3;769:66;764:2;756:6;752:15;748:88;737:9;733:104;729:114;721:122;;;;879:6;874:2;863:9;859:18;852:34;922:6;917:2;906:9;902:18;895:34;14:921;;;;;;;:::o;940:184::-;992:77;989:1;982:88;1089:4;1086:1;1079:15;1113:4;1110:1;1103:15;1129:437;1208:1;1204:12;;;;1251;;;1272:61;;1326:4;1318:6;1314:17;1304:27;;1272:61;1379:2;1371:6;1368:14;1348:18;1345:38;1342:218;;1416:77;1413:1;1406:88;1517:4;1514:1;1507:15;1545:4;1542:1;1535:15;1342:218;;1129:437;;;:::o;1696:544::-;1797:2;1792:3;1789:11;1786:448;;;1833:1;1858:5;1854:2;1847:17;1903:4;1899:2;1889:19;1973:2;1961:10;1957:19;1954:1;1950:27;1944:4;1940:38;2009:4;1997:10;1994:20;1991:47;;;-1:-1:-1;2032:4:416;1991:47;2087:2;2082:3;2078:12;2075:1;2071:20;2065:4;2061:31;2051:41;;2142:82;2160:2;2153:5;2150:13;2142:82;;;2205:17;;;2186:1;2175:13;2142:82;;;2146:3;;;1786:448;1696:544;;;:::o;2476:1321::-;2598:18;2593:3;2590:27;2587:53;;;2620:18;;:::i;:::-;2649:93;2738:3;2698:38;2730:4;2724:11;2698:38;:::i;:::-;2692:4;2649:93;:::i;:::-;2768:1;2793:2;2788:3;2785:11;2810:1;2805:734;;;;3583:1;3600:3;3597:93;;;-1:-1:-1;3656:19:416;;;3643:33;3597:93;2382:66;2373:1;2369:11;;;2365:84;2361:89;2351:100;2457:1;2453:11;;;2348:117;3703:78;;2778:1013;;2805:734;1643:1;1636:14;;;1680:4;1667:18;;2850:66;2841:76;;;3000:9;3022:229;3036:7;3033:1;3030:14;3022:229;;;3125:19;;;3112:33;3097:49;;3232:4;3217:20;;;;3185:1;3173:14;;;;3052:12;3022:229;;;3026:3;3279;3270:7;3267:16;3264:219;;;3399:66;3393:3;3387;3384:1;3380:11;3376:21;3372:94;3368:99;3355:9;3350:3;3346:19;3333:33;3329:139;3321:6;3314:155;3264:219;;;3526:1;3520:3;3517:1;3513:11;3509:19;3503:4;3496:33;2778:1013;;;2476:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"lastCall()":"da516aa9","record()":"266cf109"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"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.15+commit.e14f2714"},"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":"london","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":226896,"contract":"test/mocks/Callers.sol:CallRecorder","label":"lastCall","offset":0,"slot":"0","type":"t_struct(CallInfo)226893_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_struct(CallInfo)226893_storage":{"encoding":"inplace","label":"struct CallRecorder.CallInfo","numberOfBytes":"128","members":[{"astId":226886,"contract":"test/mocks/Callers.sol:CallRecorder","label":"sender","offset":0,"slot":"0","type":"t_address"},{"astId":226888,"contract":"test/mocks/Callers.sol:CallRecorder","label":"data","offset":0,"slot":"1","type":"t_bytes_storage"},{"astId":226890,"contract":"test/mocks/Callers.sol:CallRecorder","label":"gas","offset":0,"slot":"2","type":"t_uint256"},{"astId":226892,"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":227067,"exportedSymbols":{"CallRecorder":[226929],"CallerCaller":[226958],"ConfigurableCaller":[227049],"Reverter":[227066]},"nodeType":"SourceUnit","src":"32:2555:375","nodes":[{"id":226884,"nodeType":"PragmaDirective","src":"32:23:375","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":226929,"nodeType":"ContractDefinition","src":"57:360:375","nodes":[{"id":226893,"nodeType":"StructDefinition","src":"85:111:375","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":226886,"mutability":"mutable","name":"sender","nameLocation":"119:6:375","nodeType":"VariableDeclaration","scope":226893,"src":"111:14:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":226885,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:375","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":226888,"mutability":"mutable","name":"data","nameLocation":"141:4:375","nodeType":"VariableDeclaration","scope":226893,"src":"135:10:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":226887,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":226890,"mutability":"mutable","name":"gas","nameLocation":"163:3:375","nodeType":"VariableDeclaration","scope":226893,"src":"155:11:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":226889,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":226892,"mutability":"mutable","name":"value","nameLocation":"184:5:375","nodeType":"VariableDeclaration","scope":226893,"src":"176:13:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":226891,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:375","scope":226929,"visibility":"public"},{"id":226896,"nodeType":"VariableDeclaration","src":"202:24:375","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:375","scope":226929,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":226895,"nodeType":"UserDefinedTypeName","pathNode":{"id":226894,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":226893,"src":"202:8:375"},"referencedDeclaration":226893,"src":"202:8:375","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":226928,"nodeType":"FunctionDefinition","src":"233:182:375","nodes":[],"body":{"id":226927,"nodeType":"Block","src":"266:149:375","nodes":[],"statements":[{"expression":{"id":226904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":226899,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226896,"src":"276:8:375","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":226901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":226886,"src":"276:15:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":226902,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:375","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":226903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"294:10:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":226905,"nodeType":"ExpressionStatement","src":"276:28:375"},{"expression":{"id":226911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":226906,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226896,"src":"314:8:375","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":226908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":226888,"src":"314:13:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":226909,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:375","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":226910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"330:8:375","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":226912,"nodeType":"ExpressionStatement","src":"314:24:375"},{"expression":{"id":226918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":226913,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226896,"src":"348:8:375","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":226915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":226890,"src":"348:12:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":226916,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:375","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":226917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"363:9:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":226919,"nodeType":"ExpressionStatement","src":"348:24:375"},{"expression":{"id":226925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":226920,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226896,"src":"382:8:375","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$226893_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":226922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":226892,"src":"382:14:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":226923,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:375","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":226924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"399:9:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:375","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":226926,"nodeType":"ExpressionStatement","src":"382:26:375"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:375","parameters":{"id":226897,"nodeType":"ParameterList","parameters":[],"src":"248:2:375"},"returnParameters":{"id":226898,"nodeType":"ParameterList","parameters":[],"src":"266:0:375"},"scope":226929,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[226929],"name":"CallRecorder","nameLocation":"66:12:375","scope":227067,"usedErrors":[]},{"id":226958,"nodeType":"ContractDefinition","src":"465:440:375","nodes":[{"id":226936,"nodeType":"EventDefinition","src":"493:51:375","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:375","parameters":{"id":226935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226932,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:375","nodeType":"VariableDeclaration","scope":226936,"src":"512:12:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":226931,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":226934,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:375","nodeType":"VariableDeclaration","scope":226936,"src":"526:16:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":226933,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:375"}},{"id":226957,"nodeType":"FunctionDefinition","src":"550:353:375","nodes":[],"body":{"id":226956,"nodeType":"Block","src":"570:333:375","nodes":[],"statements":[{"assignments":[226940,226942],"declarations":[{"constant":false,"id":226940,"mutability":"mutable","name":"success","nameLocation":"586:7:375","nodeType":"VariableDeclaration","scope":226956,"src":"581:12:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":226939,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":226942,"mutability":"mutable","name":"returndata","nameLocation":"608:10:375","nodeType":"VariableDeclaration","scope":226956,"src":"595:23:375","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":226941,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":226949,"initialValue":{"arguments":[{"expression":{"id":226946,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:375","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":226947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"638:8:375","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":226943,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:375","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":226944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"622:10:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":226945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"622:15:375","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":226948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:25:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:375"},{"eventCall":{"arguments":[{"id":226951,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226940,"src":"675:7:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":226952,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226942,"src":"684:10:375","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":226950,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226936,"src":"662:12:375","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":226953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"662:33:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":226954,"nodeType":"EmitStatement","src":"657:38:375"},{"AST":{"nodeType":"YulBlock","src":"714:183:375","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:375","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:375"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:375","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:375"},"nodeType":"YulFunctionCall","src":"771:21:375"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:375"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:375"},"nodeType":"YulFunctionCall","src":"794:17:375"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:375"},"nodeType":"YulFunctionCall","src":"764:48:375"},"nodeType":"YulExpressionStatement","src":"764:48:375"}]},"nodeType":"YulCase","src":"755:59:375","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:375","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:375","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:375"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:375","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:375"},"nodeType":"YulFunctionCall","src":"844:21:375"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:375"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:375"},"nodeType":"YulFunctionCall","src":"867:17:375"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:375"},"nodeType":"YulFunctionCall","src":"837:48:375"},"nodeType":"YulExpressionStatement","src":"837:48:375"}]},"nodeType":"YulCase","src":"827:60:375","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:375"},"nodeType":"YulSwitch","src":"728:159:375"}]},"evmVersion":"london","externalReferences":[{"declaration":226942,"isOffset":false,"isSlot":false,"src":"775:10:375","valueSize":1},{"declaration":226942,"isOffset":false,"isSlot":false,"src":"800:10:375","valueSize":1},{"declaration":226942,"isOffset":false,"isSlot":false,"src":"848:10:375","valueSize":1},{"declaration":226942,"isOffset":false,"isSlot":false,"src":"873:10:375","valueSize":1},{"declaration":226940,"isOffset":false,"isSlot":false,"src":"735:7:375","valueSize":1}],"id":226955,"nodeType":"InlineAssembly","src":"705:192:375"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":226937,"nodeType":"ParameterList","parameters":[],"src":"558:2:375"},"returnParameters":{"id":226938,"nodeType":"ParameterList","parameters":[],"src":"570:0:375"},"scope":226958,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":226930,"nodeType":"StructuredDocumentation","src":"419:46:375","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[226958],"name":"CallerCaller","nameLocation":"474:12:375","scope":227067,"usedErrors":[]},{"id":227049,"nodeType":"ContractDefinition","src":"992:1409:375","nodes":[{"id":226962,"nodeType":"VariableDeclaration","src":"1026:20:375","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:375","scope":227049,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":226960,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":226961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":226964,"nodeType":"VariableDeclaration","src":"1052:14:375","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:375","scope":227049,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":226963,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:375","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":226966,"nodeType":"VariableDeclaration","src":"1072:13:375","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:375","scope":227049,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":226965,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":226972,"nodeType":"EventDefinition","src":"1092:51:375","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:375","parameters":{"id":226971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226968,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:375","nodeType":"VariableDeclaration","scope":226972,"src":"1111:12:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":226967,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":226970,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:375","nodeType":"VariableDeclaration","scope":226972,"src":"1125:16:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":226969,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:375"}},{"id":227003,"nodeType":"FunctionDefinition","src":"1231:491:375","nodes":[],"body":{"id":227002,"nodeType":"Block","src":"1256:466:375","nodes":[],"statements":[{"condition":{"id":226976,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226962,"src":"1270:8:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":227000,"nodeType":"Block","src":"1347:369:375","statements":[{"assignments":[226983,226985],"declarations":[{"constant":false,"id":226983,"mutability":"mutable","name":"success","nameLocation":"1367:7:375","nodeType":"VariableDeclaration","scope":227000,"src":"1362:12:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":226982,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":226985,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:375","nodeType":"VariableDeclaration","scope":227000,"src":"1376:23:375","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":226984,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":226993,"initialValue":{"arguments":[{"id":226991,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226966,"src":"1424:7:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":226988,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226964,"src":"1411:6:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":226987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:375","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":226986,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:375","typeDescriptions":{}}},"id":226989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:15:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":226990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1403:20:375","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":226992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:29:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:375"},{"eventCall":{"arguments":[{"id":226995,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226983,"src":"1464:7:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":226996,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226985,"src":"1473:10:375","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":226994,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226972,"src":"1451:12:375","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":226997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:33:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":226998,"nodeType":"EmitStatement","src":"1446:38:375"},{"AST":{"nodeType":"YulBlock","src":"1507:199:375","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:375","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:375"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:375","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:375"},"nodeType":"YulFunctionCall","src":"1572:21:375"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:375"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:375"},"nodeType":"YulFunctionCall","src":"1595:17:375"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:375"},"nodeType":"YulFunctionCall","src":"1565:48:375"},"nodeType":"YulExpressionStatement","src":"1565:48:375"}]},"nodeType":"YulCase","src":"1556:59:375","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:375","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:375","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:375"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:375","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:375"},"nodeType":"YulFunctionCall","src":"1649:21:375"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:375"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:375"},"nodeType":"YulFunctionCall","src":"1672:17:375"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:375"},"nodeType":"YulFunctionCall","src":"1642:48:375"},"nodeType":"YulExpressionStatement","src":"1642:48:375"}]},"nodeType":"YulCase","src":"1632:60:375","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:375"},"nodeType":"YulSwitch","src":"1525:167:375"}]},"evmVersion":"london","externalReferences":[{"declaration":226985,"isOffset":false,"isSlot":false,"src":"1576:10:375","valueSize":1},{"declaration":226985,"isOffset":false,"isSlot":false,"src":"1601:10:375","valueSize":1},{"declaration":226985,"isOffset":false,"isSlot":false,"src":"1653:10:375","valueSize":1},{"declaration":226985,"isOffset":false,"isSlot":false,"src":"1678:10:375","valueSize":1},{"declaration":226983,"isOffset":false,"isSlot":false,"src":"1532:7:375","valueSize":1}],"id":226999,"nodeType":"InlineAssembly","src":"1498:208:375"}]},"id":227001,"nodeType":"IfStatement","src":"1266:450:375","trueBody":{"id":226981,"nodeType":"Block","src":"1280:61:375","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":226978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:375","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":226977,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:375","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":226979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:36:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":226980,"nodeType":"ExpressionStatement","src":"1294:36:375"}]}}]},"documentation":{"id":226973,"nodeType":"StructuredDocumentation","src":"1149:77:375","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:375","parameters":{"id":226974,"nodeType":"ParameterList","parameters":[],"src":"1244:2:375"},"returnParameters":{"id":226975,"nodeType":"ParameterList","parameters":[],"src":"1256:0:375"},"scope":227049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":227014,"nodeType":"FunctionDefinition","src":"1786:83:375","nodes":[],"body":{"id":227013,"nodeType":"Block","src":"1832:37:375","nodes":[],"statements":[{"expression":{"id":227011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":227009,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226962,"src":"1842:8:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":227010,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227006,"src":"1853:9:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":227012,"nodeType":"ExpressionStatement","src":"1842:20:375"}]},"documentation":{"id":227004,"nodeType":"StructuredDocumentation","src":"1728:53:375","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:375","parameters":{"id":227007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":227006,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:375","nodeType":"VariableDeclaration","scope":227014,"src":"1807:14:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":227005,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:375"},"returnParameters":{"id":227008,"nodeType":"ParameterList","parameters":[],"src":"1832:0:375"},"scope":227049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":227025,"nodeType":"FunctionDefinition","src":"1935:78:375","nodes":[],"body":{"id":227024,"nodeType":"Block","src":"1980:33:375","nodes":[],"statements":[{"expression":{"id":227022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":227020,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226964,"src":"1990:6:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":227021,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227017,"src":"1999:7:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:375","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":227023,"nodeType":"ExpressionStatement","src":"1990:16:375"}]},"documentation":{"id":227015,"nodeType":"StructuredDocumentation","src":"1875:55:375","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:375","parameters":{"id":227018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":227017,"mutability":"mutable","name":"_target","nameLocation":"1962:7:375","nodeType":"VariableDeclaration","scope":227025,"src":"1954:15:375","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":227016,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:375","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:375"},"returnParameters":{"id":227019,"nodeType":"ParameterList","parameters":[],"src":"1980:0:375"},"scope":227049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":227036,"nodeType":"FunctionDefinition","src":"2080:89:375","nodes":[],"body":{"id":227035,"nodeType":"Block","src":"2134:35:375","nodes":[],"statements":[{"expression":{"id":227033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":227031,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226966,"src":"2144:7:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":227032,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227028,"src":"2154:8:375","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":227034,"nodeType":"ExpressionStatement","src":"2144:18:375"}]},"documentation":{"id":227026,"nodeType":"StructuredDocumentation","src":"2019:56:375","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:375","parameters":{"id":227029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":227028,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:375","nodeType":"VariableDeclaration","scope":227036,"src":"2100:23:375","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":227027,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:375","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:375"},"returnParameters":{"id":227030,"nodeType":"ParameterList","parameters":[],"src":"2134:0:375"},"scope":227049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"i