UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 63 kB
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDoRevert","inputs":[{"name":"_doRevert","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPayload","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"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":"0x60806040526000805460ff1916600117905534801561001d57600080fd5b506106958061002d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:375:-:0;;;1026:20;;;-1:-1:-1;;1026:20:375;1042:4;1026:20;;;992:1409;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:375:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:8;;;;2318:75;;;2346:36;;;;;216:2:416;2346:36:375;;;198:21:416;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;2346:36:375;;;;;;;;2318:75;992:1409;1231:491;;;:::i;1935:78::-;;;;;;:::i;:::-;1990:6;:16;;;;;;;;;;;;;;;;;;1935:78;1786:83;;;;;;:::i;:::-;1842:8;:20;;;;;;;;;;;;;1786:83;2080:89;;;;;;:::i;:::-;;:::i;1231:491::-;1270:8;;;;1266:450;;;1294:36;;;;;216:2:416;1294:36:375;;;198:21:416;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;1294:36:375;14:350:416;1266:450:375;1362:12;1411:6;;1403:29;;1362:12;;1411:6;;;;;;1403:29;;1411:6;;1403:29;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1361:71;;;;1451:33;1464:7;1473:10;1451:33;;;;;;;:::i;:::-;;;;;;;;1532:7;1556:59;;;;1678:10;1672:17;1665:4;1653:10;1649:21;1642:48;1556:59;1601:10;1595:17;1588:4;1576:10;1572:21;1565:48;1525:167;;1507:199;;1231:491::o;2080:89::-;2144:7;:18;2154:8;;2144:7;:18;:::i;369:309:416:-;428:6;481:2;469:9;460:7;456:23;452:32;449:52;;;497:1;494;487:12;449:52;536:9;523:23;586:42;579:5;575:54;568:5;565:65;555:93;;644:1;641;634:12;555:93;667:5;369:309;-1:-1:-1;;;369:309:416:o;683:273::-;739:6;792:2;780:9;771:7;767:23;763:32;760:52;;;808:1;805;798:12;760:52;847:9;834:23;900:5;893:13;886:21;879:5;876:32;866:60;;922:1;919;912:12;961:591;1031:6;1039;1092:2;1080:9;1071:7;1067:23;1063:32;1060:52;;;1108:1;1105;1098:12;1060:52;1148:9;1135:23;1177:18;1218:2;1210:6;1207:14;1204:34;;;1234:1;1231;1224:12;1204:34;1272:6;1261:9;1257:22;1247:32;;1317:7;1310:4;1306:2;1302:13;1298:27;1288:55;;1339:1;1336;1329:12;1288:55;1379:2;1366:16;1405:2;1397:6;1394:14;1391:34;;;1421:1;1418;1411:12;1391:34;1466:7;1461:2;1452:6;1448:2;1444:15;1440:24;1437:37;1434:57;;;1487:1;1484;1477:12;1434:57;1518:2;1510:11;;;;;1540:6;;-1:-1:-1;961:591:416;;-1:-1:-1;;;;961:591:416:o;1557:437::-;1636:1;1632:12;;;;1679;;;1700:61;;1754:4;1746:6;1742:17;1732:27;;1700:61;1807:2;1799:6;1796:14;1776:18;1773:38;1770:218;;1844:77;1841:1;1834:88;1945:4;1942:1;1935:15;1973:4;1970:1;1963:15;1770:218;;1557:437;;;:::o;2124:898::-;2250:3;2279:1;2312:6;2306:13;2342:36;2368:9;2342:36;:::i;:::-;2397:1;2414:18;;;2441:191;;;;2646:1;2641:356;;;;2407:590;;2441:191;2489:66;2478:9;2474:82;2469:3;2462:95;2612:6;2605:14;2598:22;2590:6;2586:35;2581:3;2577:45;2570:52;;2441:191;;2641:356;2672:6;2669:1;2662:17;2702:4;2747:2;2744:1;2734:16;2772:1;2786:165;2800:6;2797:1;2794:13;2786:165;;;2878:14;;2865:11;;;2858:35;2921:16;;;;2815:10;;2786:165;;;2790:3;;;2980:6;2975:3;2971:16;2964:23;;2407:590;-1:-1:-1;3013:3:416;;2124:898;-1:-1:-1;;;;;;2124:898:416:o;3027:735::-;3210:6;3203:14;3196:22;3185:9;3178:41;3159:4;3238:2;3276;3271;3260:9;3256:18;3249:30;3308:6;3302:13;3351:6;3346:2;3335:9;3331:18;3324:34;3376:1;3386:140;3400:6;3397:1;3394:13;3386:140;;;3495:14;;;3491:23;;3485:30;3461:17;;;3480:2;3457:26;3450:66;3415:10;;3386:140;;;3544:6;3541:1;3538:13;3535:91;;;3614:1;3609:2;3600:6;3589:9;3585:22;3581:31;3574:42;3535:91;-1:-1:-1;3678:2:416;3666:15;3683:66;3662:88;3647:104;;;;3753:2;3643:113;;3027:735;-1:-1:-1;;;;3027:735:416:o;3767:184::-;3819:77;3816:1;3809:88;3916:4;3913:1;3906:15;3940:4;3937:1;3930:15;3956:544;4057:2;4052:3;4049:11;4046:448;;;4093:1;4118:5;4114:2;4107:17;4163:4;4159:2;4149:19;4233:2;4221:10;4217:19;4214:1;4210:27;4204:4;4200:38;4269:4;4257:10;4254:20;4251:47;;;-1:-1:-1;4292:4:416;4251:47;4347:2;4342:3;4338:12;4335:1;4331:20;4325:4;4321:31;4311:41;;4402:82;4420:2;4413:5;4410:13;4402:82;;;4465:17;;;4446:1;4435:13;4402:82;;;4406:3;;;3956:544;;;:::o;4736:1321::-;4858:18;4853:3;4850:27;4847:53;;;4880:18;;:::i;:::-;4909:93;4998:3;4958:38;4990:4;4984:11;4958:38;:::i;:::-;4952:4;4909:93;:::i;:::-;5028:1;5053:2;5048:3;5045:11;5070:1;5065:734;;;;5843:1;5860:3;5857:93;;;-1:-1:-1;5916:19:416;;;5903:33;5857:93;4642:66;4633:1;4629:11;;;4625:84;4621:89;4611:100;4717:1;4713:11;;;4608:117;5963:78;;5038:1013;;5065:734;2071:1;2064:14;;;2108:4;2095:18;;5110:66;5101:76;;;5260:9;5282:229;5296:7;5293:1;5290:14;5282:229;;;5385:19;;;5372:33;5357:49;;5492:4;5477:20;;;;5445:1;5433:14;;;;5312:12;5282:229;;;5286:3;5539;5530:7;5527:16;5524:219;;;5659:66;5653:3;5647;5644:1;5640:11;5636:21;5632:94;5628:99;5615:9;5610:3;5606:19;5593:33;5589:139;5581:6;5574:155;5524:219;;;5786:1;5780:3;5777:1;5773:11;5769:19;5763:4;5756:33;5038:1013;;;4736:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"call()":"28b5e32b","setDoRevert(bool)":"781dd750","setPayload(bytes)":"deb3cdf2","setTarget(address)":"776d1a01"},"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\"},{\"inputs\":[],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_doRevert\",\"type\":\"bool\"}],\"name\":\"setDoRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"setPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"call()\":{\"notice\":\"Call the configured target with the configured payload OR revert.\"},\"setDoRevert(bool)\":{\"notice\":\"Set whether or not to have `call` revert.\"},\"setPayload(bytes)\":{\"notice\":\"Set the payload for the call made in `call`.\"},\"setTarget(address)\":{\"notice\":\"Set the target for the call made in `call`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"ConfigurableCaller\"},\"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"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"call"},{"inputs":[{"internalType":"bool","name":"_doRevert","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDoRevert"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setPayload"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}},"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":"ConfigurableCaller"},"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":226962,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"doRevert","offset":0,"slot":"0","type":"t_bool"},{"astId":226964,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"target","offset":1,"slot":"0","type":"t_address"},{"astId":226966,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}}},"devdoc":{"version":1,"kind":"dev","details":"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"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$__$","typeStri