@tokamak-network/thanos-contracts
Version:
1 lines • 50.6 kB
JSON
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"event","name":"WhatHappened","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"returndata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:375:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:375:-:0;;;;;;;;;;;;;581:12;595:23;622:10;:15;;638:8;;622:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:67;;;;662:33;675:7;684:10;662:33;;;;;;;:::i;:::-;;;;;;;;735:7;755:59;;;;873:10;867:17;860:4;848:10;844:21;837:48;755:59;800:10;794:17;787:4;775:10;771:21;764:48;14:271:416;197:6;189;184:3;171:33;153:3;223:16;;248:13;;;223:16;14:271;-1:-1:-1;14:271:416:o;290:735::-;473:6;466:14;459:22;448:9;441:41;422:4;501:2;539;534;523:9;519:18;512:30;571:6;565:13;614:6;609:2;598:9;594:18;587:34;639:1;649:140;663:6;660:1;657:13;649:140;;;758:14;;;754:23;;748:30;724:17;;;743:2;720:26;713:66;678:10;;649:140;;;807:6;804:1;801:13;798:91;;;877:1;872:2;863:6;852:9;848:22;844:31;837:42;798:91;-1:-1:-1;941:2:416;929:15;946:66;925:88;910:104;;;;1016:2;906:113;;290:735;-1:-1:-1;;;;290:735:416:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returndata\",\"type\":\"bytes\"}],\"name\":\"WhatHappened\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"Useful for testing reentrancy guards\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallerCaller\"},\"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":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"returndata","type":"bytes","indexed":false}],"type":"event","name":"WhatHappened","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"}],"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":"CallerCaller"},"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":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Useful for testing reentrancy guards"},"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"},{"id":227048,"nodeType":"FunctionDefinition","src":"2288:111:375","nodes":[],"body":{"id":227047,"nodeType":"Block","src":"2308:91:375","nodes":[],"statements":[{"condition":{"id":227040,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226962,"src":"2322:8:375","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":227046,"nodeType":"IfStatement","src":"2318:75:375","trueBody":{"id":227045,"nodeType":"Block","src":"2332:61:375","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":227042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353: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":227041,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2346:6:375","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":227043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:36:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":227044,"nodeType":"ExpressionStatement","src":"2346:36:375"}]}}]},"documentation":{"id":227037,"nodeType":"StructuredDocumentation","src":"2175:108:375","text":"@notice Fallback function that reverts if `doRevert` is true.\n Otherwise, it does nothing."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":227038,"nodeType":"ParameterList","parameters":[],"src":"2296:2:375"},"returnParameters":{"id":227039,"nodeType":"ParameterList","parameters":[],"src":"2308:0:375"},"scope":227049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ConfigurableCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":226959,"nodeType":"StructuredDocumentation","src":"907:85:375","text":"@dev Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"fullyImplemented":true,"linearizedBaseContracts":[227049],"name":"ConfigurableCaller","nameLocation":"1001:18:375","scope":227067,"usedErrors":[]},{"id":227066,"nodeType":"ContractDefinition","src":"2433:153:375","nodes":[{"id":227058,"nodeType":"FunctionDefinition","src":"2457:76:375","nodes":[],"body":{"id":227057,"nodeType":"Block","src":"2489:44:375","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":227054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2506:19:375","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":227053,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2499:6:375","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":227055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:27:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":227056,"nodeType":"ExpressionStatement","src":"2499:27:375"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"2466:8:375","parameters":{"id":227051,"nodeType":"ParameterList","parameters":[],"src":"2474:2:375"},"returnParameters":{"id":227052,"nodeType":"ParameterList","parameters":[],"src":"2489:0:375"},"scope":227066,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":227065,"nodeType":"FunctionDefinition","src":"2539:45:375","nodes":[],"body":{"id":227064,"nodeType":"Block","src":"2559:25:375","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":227061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2569:6:375","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":227062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:8:375","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":227063,"nodeType":"ExpressionStatement","src":"2569:8:375"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":227059,"nodeType":