Socket
Socket
Sign inDemoInstall

@eth-optimism/contracts-bedrock

Package Overview
Dependencies
Maintainers
2
Versions
213
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eth-optimism/contracts-bedrock - npm Package Compare versions

Comparing version 0.0.0-develop-20240401230611 to 0.0.0-develop-20240529000829

forge-artifacts/AddressAliasHelper.sol/AddressAliasHelper.json

2

forge-artifacts/AddressManager.sol/AddressManager.json

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ef8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:177:-:0;;;;;;;;;;;;-1:-1:-1;936:32:38;719:10:58;936:18:38;:32::i;:::-;508:1576:177;;2433:187:38;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:38;;;-1:-1:-1;;;;;;2541:17:38;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;508:1576:177:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:177:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:38;;;:::i;:::-;;1201:85;1247:7;1273:6;;;1201:85;;;190:42:350;178:55;;;160:74;;148:2;133:18;1201:85:38;;;;;;;1220:278:177;;;;;;:::i;:::-;;:::i;1682:127::-;;;;;;:::i;:::-;;:::i;2081:198:38:-;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1220:278:177:-;1094:13:38;:11;:13::i;:::-;1308:16:177::1;1327:19;1340:5;1327:12;:19::i;:::-;1356:18;1377:19:::0;;;:9:::1;:19;::::0;;;;;;;;::::1;1406:30:::0;;::::1;::::0;;::::1;;::::0;;;1452:39;;1308:38;;-1:-1:-1;1377:19:177::1;::::0;1452:39:::1;::::0;1463:5;;1452:39:::1;:::i;:::-;;::::0;;;;;::::1;::::0;;2954:42:350;3023:15;;;3005:34;;3075:15;;3070:2;3055:18;;3048:43;1452:39:177;::::1;::::0;2917:18:350;1452:39:177::1;;;;;;;1298:200;;1220:278:::0;;:::o;1682:127::-;1746:7;1772:9;:30;1782:19;1795:5;1782:12;:19::i;:::-;1772:30;;;;;;;;;;;-1:-1:-1;1772:30:177;;;;;1682:127;-1:-1:-1;;1682:127:177:o;2081:198:38:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;3304:2:350;2161:73:38::1;::::0;::::1;3286:21:350::0;3343:2;3323:18;;;3316:30;3382:34;3362:18;;;3355:62;3453:8;3433:18;;;3426:36;3479:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:58;1422:23:38;1414:68;;;;;;;3711:2:350;1414:68:38;;;3693:21:350;;;3730:18;;;3723:30;3789:34;3769:18;;;3762:62;3841:18;;1414:68:38;3509:356:350;2433:187:38;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1949:133:177:-;2015:7;2068:5;2051:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;2041:34;;;;;;2034:41;;1949:133;;;:::o;245:184:350:-;297:77;294:1;287:88;394:4;391:1;384:15;418:4;415:1;408:15;434:778;477:5;530:3;523:4;515:6;511:17;507:27;497:55;;548:1;545;538:12;497:55;584:6;571:20;610:18;647:2;643;640:10;637:36;;;653:18;;:::i;:::-;787:2;781:9;849:4;841:13;;692:66;837:22;;;861:2;833:31;829:40;817:53;;;885:18;;;905:22;;;882:46;879:72;;;931:18;;:::i;:::-;971:10;967:2;960:22;1006:2;998:6;991:18;1052:3;1045:4;1040:2;1032:6;1028:15;1024:26;1021:35;1018:55;;;1069:1;1066;1059:12;1018:55;1133:2;1126:4;1118:6;1114:17;1107:4;1099:6;1095:17;1082:54;1180:1;1173:4;1168:2;1160:6;1156:15;1152:26;1145:37;1200:6;1191:15;;;;;;434:778;;;;:::o;1217:196::-;1285:20;;1345:42;1334:54;;1324:65;;1314:93;;1403:1;1400;1393:12;1314:93;1217:196;;;:::o;1418:396::-;1496:6;1504;1557:2;1545:9;1536:7;1532:23;1528:32;1525:52;;;1573:1;1570;1563:12;1525:52;1613:9;1600:23;1646:18;1638:6;1635:30;1632:50;;;1678:1;1675;1668:12;1632:50;1701;1743:7;1734:6;1723:9;1719:22;1701:50;:::i;:::-;1691:60;;;1770:38;1804:2;1793:9;1789:18;1770:38;:::i;:::-;1760:48;;1418:396;;;;;:::o;1819:322::-;1888:6;1941:2;1929:9;1920:7;1916:23;1912:32;1909:52;;;1957:1;1954;1947:12;1909:52;1997:9;1984:23;2030:18;2022:6;2019:30;2016:50;;;2062:1;2059;2052:12;2016:50;2085;2127:7;2118:6;2107:9;2103:22;2085:50;:::i;:::-;2075:60;1819:322;-1:-1:-1;;;;1819:322:350:o;2146:186::-;2205:6;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2297:29;2316:9;2297:29;:::i;:::-;2287:39;2146:186;-1:-1:-1;;;2146:186:350:o;2337:428::-;2468:3;2506:6;2500:13;2531:1;2541:129;2555:6;2552:1;2549:13;2541:129;;;2653:4;2637:14;;;2633:25;;2627:32;2614:11;;;2607:53;2570:12;2541:129;;;2688:6;2685:1;2682:13;2679:48;;;2723:1;2714:6;2709:3;2705:16;2698:27;2679:48;-1:-1:-1;2743:16:350;;;;;2337:428;-1:-1:-1;;2337:428:350:o","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAddress(string,address)":"9b2ea4bd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title AddressManager\",\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/AddressManager.sol\":\"AddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/AddressManager.sol":"AddressManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":98441,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"addresses","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}}},"id":177}
{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ef8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:189:-:0;;;;;;;;;;;;-1:-1:-1;936:32:40;719:10:60;936:18:40;:32::i;:::-;508:1576:189;;2433:187:40;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:40;;;-1:-1:-1;;;;;;2541:17:40;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;508:1576:189:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:189:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:40;;;:::i;:::-;;1201:85;1247:7;1273:6;;;1201:85;;;190:42:382;178:55;;;160:74;;148:2;133:18;1201:85:40;;;;;;;1220:278:189;;;;;;:::i;:::-;;:::i;1682:127::-;;;;;;:::i;:::-;;:::i;2081:198:40:-;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1220:278:189:-;1094:13:40;:11;:13::i;:::-;1308:16:189::1;1327:19;1340:5;1327:12;:19::i;:::-;1356:18;1377:19:::0;;;:9:::1;:19;::::0;;;;;;;;::::1;1406:30:::0;;::::1;::::0;;::::1;;::::0;;;1452:39;;1308:38;;-1:-1:-1;1377:19:189::1;::::0;1452:39:::1;::::0;1463:5;;1452:39:::1;:::i;:::-;;::::0;;;;;::::1;::::0;;2954:42:382;3023:15;;;3005:34;;3075:15;;3070:2;3055:18;;3048:43;1452:39:189;::::1;::::0;2917:18:382;1452:39:189::1;;;;;;;1298:200;;1220:278:::0;;:::o;1682:127::-;1746:7;1772:9;:30;1782:19;1795:5;1782:12;:19::i;:::-;1772:30;;;;;;;;;;;-1:-1:-1;1772:30:189;;;;;1682:127;-1:-1:-1;;1682:127:189:o;2081:198:40:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;3304:2:382;2161:73:40::1;::::0;::::1;3286:21:382::0;3343:2;3323:18;;;3316:30;3382:34;3362:18;;;3355:62;3453:8;3433:18;;;3426:36;3479:19;;2161:73:40::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:60;1422:23:40;1414:68;;;;;;;3711:2:382;1414:68:40;;;3693:21:382;;;3730:18;;;3723:30;3789:34;3769:18;;;3762:62;3841:18;;1414:68:40;3509:356:382;2433:187:40;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1949:133:189:-;2015:7;2068:5;2051:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;2041:34;;;;;;2034:41;;1949:133;;;:::o;245:184:382:-;297:77;294:1;287:88;394:4;391:1;384:15;418:4;415:1;408:15;434:778;477:5;530:3;523:4;515:6;511:17;507:27;497:55;;548:1;545;538:12;497:55;584:6;571:20;610:18;647:2;643;640:10;637:36;;;653:18;;:::i;:::-;787:2;781:9;849:4;841:13;;692:66;837:22;;;861:2;833:31;829:40;817:53;;;885:18;;;905:22;;;882:46;879:72;;;931:18;;:::i;:::-;971:10;967:2;960:22;1006:2;998:6;991:18;1052:3;1045:4;1040:2;1032:6;1028:15;1024:26;1021:35;1018:55;;;1069:1;1066;1059:12;1018:55;1133:2;1126:4;1118:6;1114:17;1107:4;1099:6;1095:17;1082:54;1180:1;1173:4;1168:2;1160:6;1156:15;1152:26;1145:37;1200:6;1191:15;;;;;;434:778;;;;:::o;1217:196::-;1285:20;;1345:42;1334:54;;1324:65;;1314:93;;1403:1;1400;1393:12;1314:93;1217:196;;;:::o;1418:396::-;1496:6;1504;1557:2;1545:9;1536:7;1532:23;1528:32;1525:52;;;1573:1;1570;1563:12;1525:52;1613:9;1600:23;1646:18;1638:6;1635:30;1632:50;;;1678:1;1675;1668:12;1632:50;1701;1743:7;1734:6;1723:9;1719:22;1701:50;:::i;:::-;1691:60;;;1770:38;1804:2;1793:9;1789:18;1770:38;:::i;:::-;1760:48;;1418:396;;;;;:::o;1819:322::-;1888:6;1941:2;1929:9;1920:7;1916:23;1912:32;1909:52;;;1957:1;1954;1947:12;1909:52;1997:9;1984:23;2030:18;2022:6;2019:30;2016:50;;;2062:1;2059;2052:12;2016:50;2085;2127:7;2118:6;2107:9;2103:22;2085:50;:::i;:::-;2075:60;1819:322;-1:-1:-1;;;;1819:322:382:o;2146:186::-;2205:6;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2297:29;2316:9;2297:29;:::i;:::-;2287:39;2146:186;-1:-1:-1;;;2146:186:382:o;2337:428::-;2468:3;2506:6;2500:13;2531:1;2541:129;2555:6;2552:1;2549:13;2541:129;;;2653:4;2637:14;;;2633:25;;2627:32;2614:11;;;2607:53;2570:12;2541:129;;;2688:6;2685:1;2682:13;2679:48;;;2723:1;2714:6;2709:3;2705:16;2698:27;2679:48;-1:-1:-1;2743:16:382;;;;;2337:428;-1:-1:-1;;2337:428:382:o","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAddress(string,address)":"9b2ea4bd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title AddressManager\",\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/AddressManager.sol\":\"AddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/AddressManager.sol":"AddressManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49473,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":105085,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"addresses","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}}},"ast":{"absolutePath":"src/legacy/AddressManager.sol","id":105162,"exportedSymbols":{"AddressManager":[105161],"Ownable":[49578]},"nodeType":"SourceUnit","src":"32:2053:189","nodes":[{"id":105075,"nodeType":"PragmaDirective","src":"32:23:189","nodes":[],"literals":["solidity","0.8",".15"]},{"id":105077,"nodeType":"ImportDirective","src":"57:69:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":105162,"sourceUnit":49579,"symbolAliases":[{"foreign":{"id":105076,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49578,"src":"66:7:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105161,"nodeType":"ContractDefinition","src":"508:1576:189","nodes":[{"id":105085,"nodeType":"VariableDeclaration","src":"617:45:189","nodes":[],"constant":false,"documentation":{"id":105081,"nodeType":"StructuredDocumentation","src":"549:63:189","text":"@notice Mapping of the hashes of string names to addresses."},"mutability":"mutable","name":"addresses","nameLocation":"653:9:189","scope":105161,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":105084,"keyType":{"id":105082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"625:7:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"617:27:189","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":105083,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":105094,"nodeType":"EventDefinition","src":"939:78:189","nodes":[],"anonymous":false,"documentation":{"id":105086,"nodeType":"StructuredDocumentation","src":"669:265:189","text":"@notice Emitted when an address is modified in the registry.\n @param name String name being set in the registry.\n @param newAddress Address set for the given name.\n @param oldAddress Address that was previously set for the given name."},"eventSelector":"9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c","name":"AddressSet","nameLocation":"945:10:189","parameters":{"id":105093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105088,"indexed":true,"mutability":"mutable","name":"name","nameLocation":"971:4:189","nodeType":"VariableDeclaration","scope":105094,"src":"956:19:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105087,"name":"string","nodeType":"ElementaryTypeName","src":"956:6:189","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105090,"indexed":false,"mutability":"mutable","name":"newAddress","nameLocation":"985:10:189","nodeType":"VariableDeclaration","scope":105094,"src":"977:18:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105089,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":105092,"indexed":false,"mutability":"mutable","name":"oldAddress","nameLocation":"1005:10:189","nodeType":"VariableDeclaration","scope":105094,"src":"997:18:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105091,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"955:61:189"}},{"id":105129,"nodeType":"FunctionDefinition","src":"1220:278:189","nodes":[],"body":{"id":105128,"nodeType":"Block","src":"1298:200:189","nodes":[],"statements":[{"assignments":[105105],"declarations":[{"constant":false,"id":105105,"mutability":"mutable","name":"nameHash","nameLocation":"1316:8:189","nodeType":"VariableDeclaration","scope":105128,"src":"1308:16:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":105104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1308:7:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":105109,"initialValue":{"arguments":[{"id":105107,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105097,"src":"1340:5:189","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":105106,"name":"_getNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105160,"src":"1327:12:189","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":105108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1327:19:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1308:38:189"},{"assignments":[105111],"declarations":[{"constant":false,"id":105111,"mutability":"mutable","name":"oldAddress","nameLocation":"1364:10:189","nodeType":"VariableDeclaration","scope":105128,"src":"1356:18:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105110,"name":"address","nodeType":"ElementaryTypeName","src":"1356:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":105115,"initialValue":{"baseExpression":{"id":105112,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105085,"src":"1377:9:189","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":105114,"indexExpression":{"id":105113,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105105,"src":"1387:8:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1377:19:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1356:40:189"},{"expression":{"id":105120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":105116,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105085,"src":"1406:9:189","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":105118,"indexExpression":{"id":105117,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105105,"src":"1416:8:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1406:19:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":105119,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105099,"src":"1428:8:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1406:30:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":105121,"nodeType":"ExpressionStatement","src":"1406:30:189"},{"eventCall":{"arguments":[{"id":105123,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105097,"src":"1463:5:189","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":105124,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105099,"src":"1470:8:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":105125,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105111,"src":"1480:10:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":105122,"name":"AddressSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105094,"src":"1452:10:189","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$","typeString":"function (string memory,address,address)"}},"id":105126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1452:39:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105127,"nodeType":"EmitStatement","src":"1447:44:189"}]},"documentation":{"id":105095,"nodeType":"StructuredDocumentation","src":"1023:192:189","text":"@notice Changes the address associated with a particular name.\n @param _name String name to associate an address with.\n @param _address Address to associate with the name."},"functionSelector":"9b2ea4bd","implemented":true,"kind":"function","modifiers":[{"id":105102,"kind":"modifierInvocation","modifierName":{"id":105101,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49497,"src":"1288:9:189"},"nodeType":"ModifierInvocation","src":"1288:9:189"}],"name":"setAddress","nameLocation":"1229:10:189","parameters":{"id":105100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105097,"mutability":"mutable","name":"_name","nameLocation":"1254:5:189","nodeType":"VariableDeclaration","scope":105129,"src":"1240:19:189","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105096,"name":"string","nodeType":"ElementaryTypeName","src":"1240:6:189","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105099,"mutability":"mutable","name":"_address","nameLocation":"1269:8:189","nodeType":"VariableDeclaration","scope":105129,"src":"1261:16:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105098,"name":"address","nodeType":"ElementaryTypeName","src":"1261:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1239:39:189"},"returnParameters":{"id":105103,"nodeType":"ParameterList","parameters":[],"src":"1298:0:189"},"scope":105161,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":105144,"nodeType":"FunctionDefinition","src":"1682:127:189","nodes":[],"body":{"id":105143,"nodeType":"Block","src":"1755:54:189","nodes":[],"statements":[{"expression":{"baseExpression":{"id":105137,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105085,"src":"1772:9:189","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":105141,"indexExpression":{"arguments":[{"id":105139,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105132,"src":"1795:5:189","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":105138,"name":"_getNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105160,"src":"1782:12:189","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":105140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1782:19:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1772:30:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":105136,"id":105142,"nodeType":"Return","src":"1765:37:189"}]},"documentation":{"id":105130,"nodeType":"StructuredDocumentation","src":"1504:173:189","text":"@notice Retrieves the address associated with a given name.\n @param _name Name to retrieve an address for.\n @return Address associated with the given name."},"functionSelector":"bf40fac1","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1691:10:189","parameters":{"id":105133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105132,"mutability":"mutable","name":"_name","nameLocation":"1716:5:189","nodeType":"VariableDeclaration","scope":105144,"src":"1702:19:189","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105131,"name":"string","nodeType":"ElementaryTypeName","src":"1702:6:189","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1701:21:189"},"returnParameters":{"id":105136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105144,"src":"1746:7:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105134,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1745:9:189"},"scope":105161,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":105160,"nodeType":"FunctionDefinition","src":"1949:133:189","nodes":[],"body":{"id":105159,"nodeType":"Block","src":"2024:58:189","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":105155,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105147,"src":"2068:5:189","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":105153,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2051:3:189","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":105154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2051:16:189","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":105156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2051:23:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":105152,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2041:9:189","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":105157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2041:34:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":105151,"id":105158,"nodeType":"Return","src":"2034:41:189"}]},"documentation":{"id":105145,"nodeType":"StructuredDocumentation","src":"1815:129:189","text":"@notice Computes the hash of a name.\n @param _name Name to compute a hash for.\n @return Hash of the given name."},"implemented":true,"kind":"function","modifiers":[],"name":"_getNameHash","nameLocation":"1958:12:189","parameters":{"id":105148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105147,"mutability":"mutable","name":"_name","nameLocation":"1985:5:189","nodeType":"VariableDeclaration","scope":105160,"src":"1971:19:189","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105146,"name":"string","nodeType":"ElementaryTypeName","src":"1971:6:189","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1970:21:189"},"returnParameters":{"id":105151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105160,"src":"2015:7:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":105149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2015:7:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2014:9:189"},"scope":105161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":105079,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":49578,"src":"535:7:189"},"id":105080,"nodeType":"InheritanceSpecifier","src":"535:7:189"}],"canonicalName":"AddressManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":105078,"nodeType":"StructuredDocumentation","src":"128:380:189","text":"@custom:legacy\n @title AddressManager\n @notice AddressManager is a legacy contract that was used in the old version of the Optimism\n system to manage a registry of string names to addresses. We now use a more standard\n proxy system instead, but this contract is still necessary for backwards compatibility\n with several older contracts."},"fullyImplemented":true,"linearizedBaseContracts":[105161,49578,53434],"name":"AddressManager","nameLocation":"517:14:189","scope":105162,"usedErrors":[]}],"license":"MIT"},"id":189}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_version","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101806040527fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e6101605234801561003657600080fd5b50604051610bd2380380610bd2833981016040819052610055916101b8565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120526001600160a01b03166101405261023a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011d57600080fd5b81516001600160401b0380821115610137576101376100f6565b604051601f8301601f19908116603f0116810190828211818310171561015f5761015f6100f6565b8160405283815260209250868385880101111561017b57600080fd5b600091505b8382101561019d5785820183015181830184015290820190610180565b838211156101ae5760008385830101525b9695505050505050565b6000806000606084860312156101cd57600080fd5b83516001600160a01b03811681146101e457600080fd5b60208501519093506001600160401b038082111561020157600080fd5b61020d8783880161010c565b9350604086015191508082111561022357600080fd5b506102308682870161010c565b9150509250925092565b60805160a05160c05160e051610100516101205161014051610160516109286102aa60003960008181609c015261011a015260008181604b015260f601526000610481015260006104d0015260006104ab015260006104040152600061042e0152600061045801526109286000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:211:-:0;;;776:62;734:104;;1427:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2541:22:63;;;;;;;2597:25;;;;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:63;;2651:117;3633:73;;;2029:25:350;;;2070:18;;;2063:34;;;;-1:-1:-1;2113:18:350;;2106:34;;;;2156:18;;;;2149:34;;;;3700:4:63;2199:19:350;;;2192:61;;;3633:73:63;;;;;;;;;;2001:19:350;;;;3633:73:63;;;3623:84;;;;;;;2896:85;;2991:28;;;;3029:21;;-1:-1:-1;;;;;1534:14:211::1;;::::0;521:1556;;14:127:350;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:350;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:350;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:350:o;1036:729::-;1144:6;1152;1160;1213:2;1201:9;1192:7;1188:23;1184:32;1181:52;;;1229:1;1226;1219:12;1181:52;1255:16;;-1:-1:-1;;;;;1300:31:350;;1290:42;;1280:70;;1346:1;1343;1336:12;1280:70;1418:2;1403:18;;1397:25;1369:5;;-1:-1:-1;;;;;;1471:14:350;;;1468:34;;;1498:1;1495;1488:12;1468:34;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1628:2;1617:9;1613:18;1607:25;1591:41;;1657:2;1647:8;1644:16;1641:36;;;1673:1;1670;1663:12;1641:36;;1696:63;1751:7;1740:8;1729:9;1725:24;1696:63;:::i;:::-;1686:73;;;1036:729;;;;;:::o;1770:489::-;521:1556:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;645:30;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;645:30:211;;;;;;;;734:104;;;;;;;;391:25:350;;;379:2;364:18;734:104:211;245:177:350;1599:476:211;;;;;;:::i;:::-;;:::i;:::-;;;2718:14:350;;2711:22;2693:41;;2681:2;2666:18;1599:476:211;2553:187:350;1599:476:211;1764:11;1875:193;1925:5;1944:94;1982:14;1998:7;:17;;;2017:7;:13;;;2032:3;1971:65;;;;;;;;;;2992:25:350;;;3065:42;3053:55;;;;3048:2;3033:18;;3026:83;3140:2;3125:18;;3118:34;3183:2;3168:18;;3161:34;2979:3;2964:19;;2745:456;1971:65:211;;;;;;;;;;;;;1961:76;;;;;;1944:16;:94::i;:::-;2052:6;1875:36;:193::i;:::-;1866:202;1599:476;-1:-1:-1;;;;1599:476:211:o;4339:165:63:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:61;;4912:66:350;8677:57:61;;;4900:79:350;4995:11;;;4988:27;;;5031:12;;;5024:28;;;8641:7:61;;5068:12:350;;8677:57:61;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;4442:55:63;4435:62;4339:165;-1:-1:-1;;4339:165:63:o;1039:667:62:-;1175:4;1192:17;1211:24;1239:33;1256:4;1262:9;1239:16;:33::i;:::-;1191:81;;-1:-1:-1;1191:81:62;-1:-1:-1;1295:26:62;1286:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1338:6;1325:19;;:9;:19;;;1286:58;1282:100;;;1367:4;1360:11;;;;;;1282:100;1393:12;1407:19;1430:6;:17;;1484:34;;;1520:4;1526:9;1461:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:116;;;;1461:75;1430:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:154;;;;1564:7;:42;;;;;1587:6;:13;1604:2;1587:19;1564:42;:134;;;;-1:-1:-1;1622:29:62;;1663:34;;1622:29;;;;;;;;;;;;:::i;:::-;:76;1564:134;1556:143;;;;;;1039:667;;;;;;:::o;3143:308:63:-;3196:7;3227:4;3219:29;3236:12;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:63;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:63;;;3392:10;3633:73;;;;5350:25:350;;;;3404:12:63;5391:18:350;;;5384:34;3418:15:63;5434:18:350;;;5427:34;3677:13:63;5477:18:350;;;5470:34;3700:4:63;5520:19:350;;;;5513:84;;;;3633:73:63;;;;;;;;;;5322:19:350;;;;3633:73:63;;;3623:84;;;;;;3143:308::o;2243:730:61:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:61;;-1:-1:-1;2920:35:61;2357:610;2243:730;;;;;:::o;5167:1603::-;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:61;;-1:-1:-1;6319:30:61;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:61;;-1:-1:-1;6428:30:61;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;5835:25:350;;;5908:4;5896:17;;5876:18;;;5869:45;;;;5930:18;;;5923:34;;;5973:18;;;5966:34;;;6581:24:61;;5807:19:350;;6581:24:61;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:61;;;;;;-1:-1:-1;;6619:20:61;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:61;;-1:-1:-1;5167:1603:61;;;;;;;;:::o;427:184:350:-;479:77;476:1;469:88;576:4;573:1;566:15;600:4;597:1;590:15;616:256;687:4;681:11;;;719:17;;766:18;751:34;;787:22;;;748:62;745:88;;;813:18;;:::i;:::-;849:4;842:24;616:256;:::o;877:334::-;948:2;942:9;1004:2;994:13;;1009:66;990:86;978:99;;1107:18;1092:34;;1128:22;;;1089:62;1086:88;;;1154:18;;:::i;:::-;1190:2;1183:22;877:334;;-1:-1:-1;877:334:350:o;1216:1332::-;1336:6;1344;1352;1396:9;1387:7;1383:23;1426:3;1422:2;1418:12;1415:32;;;1443:1;1440;1433:12;1415:32;1467:4;1463:2;1459:13;1456:33;;;1485:1;1482;1475:12;1456:33;;1511:21;;:::i;:::-;1569:9;1556:23;1623:42;1614:7;1610:56;1601:7;1598:69;1588:97;;1681:1;1678;1671:12;1588:97;1694:22;;1735:2;1782:18;;;1769:32;1753:14;;;1746:56;1701:5;;-1:-1:-1;1873:4:350;1858:20;;1845:34;;-1:-1:-1;1930:2:350;1915:18;;1902:32;;1953:18;1983:14;;;1980:34;;;2010:1;2007;2000:12;1980:34;2048:6;2037:9;2033:22;2023:32;;2093:7;2086:4;2082:2;2078:13;2074:27;2064:55;;2115:1;2112;2105:12;2064:55;2151:2;2138:16;2173:2;2169;2166:10;2163:36;;;2179:18;;:::i;:::-;2221:112;2329:2;2260:66;2253:4;2249:2;2245:13;2241:86;2237:95;2221:112;:::i;:::-;2208:125;;2356:2;2349:5;2342:17;2396:7;2391:2;2386;2382;2378:11;2374:20;2371:33;2368:53;;;2417:1;2414;2407:12;2368:53;2472:2;2467;2463;2459:11;2454:2;2447:5;2443:14;2430:45;2516:1;2511:2;2506;2499:5;2495:14;2491:23;2484:34;;2537:5;2527:15;;;;;1216:1332;;;;;:::o;3206:184::-;3258:77;3255:1;3248:88;3355:4;3352:1;3345:15;3379:4;3376:1;3369:15;3395:258;3467:1;3477:113;3491:6;3488:1;3485:13;3477:113;;;3567:11;;;3561:18;3548:11;;;3541:39;3513:2;3506:10;3477:113;;;3608:6;3605:1;3602:13;3599:48;;;3643:1;3634:6;3629:3;3625:16;3618:27;3599:48;;3395:258;;;:::o;3658:511::-;3833:6;3822:9;3815:25;3876:2;3871;3860:9;3856:18;3849:30;3796:4;3908:6;3902:13;3951:6;3946:2;3935:9;3931:18;3924:34;3967:66;4026:6;4021:2;4010:9;4006:18;4001:2;3993:6;3989:15;3967:66;:::i;:::-;4085:2;4073:15;4090:66;4069:88;4054:104;;;;4160:2;4050:113;;3658:511;-1:-1:-1;;;3658:511:350:o;4174:274::-;4303:3;4341:6;4335:13;4357:53;4403:6;4398:3;4391:4;4383:6;4379:17;4357:53;:::i;:::-;4426:16;;;;;4174:274;-1:-1:-1;;4174:274:350:o;4453:184::-;4523:6;4576:2;4564:9;4555:7;4551:23;4547:32;4544:52;;;4592:1;4589;4582:12;4544:52;-1:-1:-1;4615:16:350;;4453:184;-1:-1:-1;4453:184:350:o","linkReferences":{},"immutableReferences":{"103937":[{"start":75,"length":32},{"start":246,"length":32}],"103943":[{"start":156,"length":32},{"start":282,"length":32}],"52411":[{"start":1112,"length":32}],"52413":[{"start":1070,"length":32}],"52415":[{"start":1028,"length":32}],"52417":[{"start":1195,"length":32}],"52419":[{"start":1232,"length":32}],"52421":[{"start":1153,"length":32}]}},"methodIdentifiers":{"ADMIN()":"2a0acc6a","PROOF_TYPEHASH()":"8b3e3bf6","verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_version\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admin\":\"Admin address that can sign off on drips.\",\"_name\":\"Contract name.\",\"_version\":\"The current major version of the signing domain.\"}},\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"valid_\":\"True if the drip parameters are valid.\"}}},\"title\":\"AdminFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ADMIN()\":{\"notice\":\"Admin address that can sign off on drips.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":\"AdminFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":"AdminFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"title":"AdminFaucetAuthModule"},"id":211}
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_version","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"gasLimit","type":"uint32","internalType":"uint32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101806040527fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e6101605234801561003657600080fd5b50604051610c0a380380610c0a833981016040819052610055916101b8565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120526001600160a01b03166101405261023a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011d57600080fd5b81516001600160401b0380821115610137576101376100f6565b604051601f8301601f19908116603f0116810190828211818310171561015f5761015f6100f6565b8160405283815260209250868385880101111561017b57600080fd5b600091505b8382101561019d5785820183015181830184015290820190610180565b838211156101ae5760008385830101525b9695505050505050565b6000806000606084860312156101cd57600080fd5b83516001600160a01b03811681146101e457600080fd5b60208501519093506001600160401b038082111561020157600080fd5b61020d8783880161010c565b9350604086015191508082111561022357600080fd5b506102308682870161010c565b9150509250925092565b60805160a05160c05160e051610100516101205161014051610160516109606102aa60003960008181609c015260fb015260008181604b015261015301526000610478015260006104c7015260006104a2015260006103fb015260006104250152600061044f01526109606000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063d855814f146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610775565b6100ef565b604051901515815260200161008e565b825160408085015181517f0000000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9093169183019190915260608201526080810183905260009061019b907f0000000000000000000000000000000000000000000000000000000000000000906101959060a001604051602081830303815290604052805190602001206101a3565b84610212565b949350505050565b600061020c6101b06103e1565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b60008060006102218585610515565b9092509050600081600481111561023a5761023a610867565b14801561027257508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610282576001925050506103da565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102b79291906108c6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610340919061091e565b600060405180830381855afa9150503d806000811461037b576040519150601f19603f3d011682016040523d82523d6000602084013e610380565b606091505b5091509150818015610393575080516020145b80156103d3575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103d1908301602090810190840161093a565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561044757507f000000000000000000000000000000000000000000000000000000000000000046145b1561047157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080825160410361054b5760208301516040840151606085015160001a61053f8782858561055a565b94509450505050610553565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156105915750600090506003610669565b8460ff16601b141580156105a957508460ff16601c14155b156105ba5750600090506004610669565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561060e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066257600060019250925050610669565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156106c4576106c4610672565b60405290565b600082601f8301126106db57600080fd5b813567ffffffffffffffff808211156106f6576106f6610672565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561073c5761073c610672565b8160405283815286602085880101111561075557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561078a57600080fd5b833567ffffffffffffffff808211156107a257600080fd5b90850190608082880312156107b657600080fd5b6107be6106a1565b823573ffffffffffffffffffffffffffffffffffffffff811681146107e257600080fd5b81526020830135828111156107f657600080fd5b610802898286016106ca565b602083015250604083013560408201526060830135925063ffffffff8316831461082b57600080fd5b8260608201528095505060208601359350604086013591508082111561085057600080fd5b5061085d868287016106ca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b838110156108b1578181015183820152602001610899565b838111156108c0576000848401525b50505050565b82815260406020820152600082518060408401526108eb816060850160208701610896565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008251610930818460208701610896565b9190910192915050565b60006020828403121561094c57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:227:-:0;;;776:62;734:104;;1427:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2541:22:65;;;;;;;2597:25;;;;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:65;;2651:117;3633:73;;;2029:25:382;;;2070:18;;;2063:34;;;;-1:-1:-1;2113:18:382;;2106:34;;;;2156:18;;;;2149:34;;;;3700:4:65;2199:19:382;;;2192:61;;;3633:73:65;;;;;;;;;;2001:19:382;;;;3633:73:65;;;3623:84;;;;;;;2896:85;;2991:28;;;;3029:21;;-1:-1:-1;;;;;1534:14:227::1;;::::0;521:1556;;14:127:382;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:382;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:382;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:382:o;1036:729::-;1144:6;1152;1160;1213:2;1201:9;1192:7;1188:23;1184:32;1181:52;;;1229:1;1226;1219:12;1181:52;1255:16;;-1:-1:-1;;;;;1300:31:382;;1290:42;;1280:70;;1346:1;1343;1336:12;1280:70;1418:2;1403:18;;1397:25;1369:5;;-1:-1:-1;;;;;;1471:14:382;;;1468:34;;;1498:1;1495;1488:12;1468:34;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1628:2;1617:9;1613:18;1607:25;1591:41;;1657:2;1647:8;1644:16;1641:36;;;1673:1;1670;1663:12;1641:36;;1696:63;1751:7;1740:8;1729:9;1725:24;1696:63;:::i;:::-;1686:73;;;1036:729;;;;;:::o;1770:489::-;521:1556:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063d855814f146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610775565b6100ef565b604051901515815260200161008e565b825160408085015181517f0000000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9093169183019190915260608201526080810183905260009061019b907f0000000000000000000000000000000000000000000000000000000000000000906101959060a001604051602081830303815290604052805190602001206101a3565b84610212565b949350505050565b600061020c6101b06103e1565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b60008060006102218585610515565b9092509050600081600481111561023a5761023a610867565b14801561027257508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610282576001925050506103da565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102b79291906108c6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610340919061091e565b600060405180830381855afa9150503d806000811461037b576040519150601f19603f3d011682016040523d82523d6000602084013e610380565b606091505b5091509150818015610393575080516020145b80156103d3575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103d1908301602090810190840161093a565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561044757507f000000000000000000000000000000000000000000000000000000000000000046145b1561047157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080825160410361054b5760208301516040840151606085015160001a61053f8782858561055a565b94509450505050610553565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156105915750600090506003610669565b8460ff16601b141580156105a957508460ff16601c14155b156105ba5750600090506004610669565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561060e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066257600060019250925050610669565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156106c4576106c4610672565b60405290565b600082601f8301126106db57600080fd5b813567ffffffffffffffff808211156106f6576106f6610672565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561073c5761073c610672565b8160405283815286602085880101111561075557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561078a57600080fd5b833567ffffffffffffffff808211156107a257600080fd5b90850190608082880312156107b657600080fd5b6107be6106a1565b823573ffffffffffffffffffffffffffffffffffffffff811681146107e257600080fd5b81526020830135828111156107f657600080fd5b610802898286016106ca565b602083015250604083013560408201526060830135925063ffffffff8316831461082b57600080fd5b8260608201528095505060208601359350604086013591508082111561085057600080fd5b5061085d868287016106ca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b838110156108b1578181015183820152602001610899565b838111156108c0576000848401525b50505050565b82815260406020820152600082518060408401526108eb816060850160208701610896565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008251610930818460208701610896565b9190910192915050565b60006020828403121561094c57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:227:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;645:30;;;;;;;;190:42:382;178:55;;;160:74;;148:2;133:18;645:30:227;;;;;;;;734:104;;;;;;;;391:25:382;;;379:2;364:18;734:104:227;245:177:382;1599:476:227;;;;;;:::i;:::-;;:::i;:::-;;;3115:14:382;;3108:22;3090:41;;3078:2;3063:18;1599:476:227;2950:187:382;1599:476:227;1998:17;;2017:13;;;;;1971:65;;1982:14;1971:65;;;3389:25:382;3462:42;3450:55;;;3430:18;;;3423:83;;;;3522:18;;;3515:34;3565:18;;;3558:34;;;1764:11:227;;1875:193;;1925:5;;1944:94;;3361:19:382;;1971:65:227;;;;;;;;;;;;1961:76;;;;;;1944:16;:94::i;:::-;2052:6;1875:36;:193::i;:::-;1866:202;1599:476;-1:-1:-1;;;;1599:476:227:o;4339:165:65:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:63;;5309:66:382;8677:57:63;;;5297:79:382;5392:11;;;5385:27;;;5428:12;;;5421:28;;;8641:7:63;;5465:12:382;;8677:57:63;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;4442:55:65;4435:62;4339:165;-1:-1:-1;;4339:165:65:o;1039:667:64:-;1175:4;1192:17;1211:24;1239:33;1256:4;1262:9;1239:16;:33::i;:::-;1191:81;;-1:-1:-1;1191:81:64;-1:-1:-1;1295:26:64;1286:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1338:6;1325:19;;:9;:19;;;1286:58;1282:100;;;1367:4;1360:11;;;;;;1282:100;1393:12;1407:19;1430:6;:17;;1484:34;;;1520:4;1526:9;1461:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:116;;;;1461:75;1430:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:154;;;;1564:7;:42;;;;;1587:6;:13;1604:2;1587:19;1564:42;:134;;;;-1:-1:-1;1622:29:64;;1663:34;;1622:29;;;;;;;;;;;;:::i;:::-;:76;1564:134;1556:143;;;;;;1039:667;;;;;;:::o;3143:308:65:-;3196:7;3227:4;3219:29;3236:12;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:65;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:65;;;3392:10;3633:73;;;;5747:25:382;;;;3404:12:65;5788:18:382;;;5781:34;3418:15:65;5831:18:382;;;5824:34;3677:13:65;5874:18:382;;;5867:34;3700:4:65;5917:19:382;;;;5910:84;;;;3633:73:65;;;;;;;;;;5719:19:382;;;;3633:73:65;;;3623:84;;;;;;3143:308::o;2243:730:63:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:63;;-1:-1:-1;2920:35:63;2357:610;2243:730;;;;;:::o;5167:1603::-;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:63;;-1:-1:-1;6319:30:63;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:63;;-1:-1:-1;6428:30:63;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;6232:25:382;;;6305:4;6293:17;;6273:18;;;6266:45;;;;6327:18;;;6320:34;;;6370:18;;;6363:34;;;6581:24:63;;6204:19:382;;6581:24:63;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:63;;;;;;-1:-1:-1;;6619:20:63;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:63;;-1:-1:-1;5167:1603:63;;;;;;;;:::o;427:184:382:-;479:77;476:1;469:88;576:4;573:1;566:15;600:4;597:1;590:15;616:248;683:2;677:9;725:4;713:17;;760:18;745:34;;781:22;;;742:62;739:88;;;807:18;;:::i;:::-;843:2;836:22;616:248;:::o;869:777::-;911:5;964:3;957:4;949:6;945:17;941:27;931:55;;982:1;979;972:12;931:55;1018:6;1005:20;1044:18;1081:2;1077;1074:10;1071:36;;;1087:18;;:::i;:::-;1221:2;1215:9;1283:4;1275:13;;1126:66;1271:22;;;1295:2;1267:31;1263:40;1251:53;;;1319:18;;;1339:22;;;1316:46;1313:72;;;1365:18;;:::i;:::-;1405:10;1401:2;1394:22;1440:2;1432:6;1425:18;1486:3;1479:4;1474:2;1466:6;1462:15;1458:26;1455:35;1452:55;;;1503:1;1500;1493:12;1452:55;1567:2;1560:4;1552:6;1548:17;1541:4;1533:6;1529:17;1516:54;1614:1;1607:4;1602:2;1594:6;1590:15;1586:26;1579:37;1634:6;1625:15;;;;;;869:777;;;;:::o;1651:1294::-;1771:6;1779;1787;1840:2;1828:9;1819:7;1815:23;1811:32;1808:52;;;1856:1;1853;1846:12;1808:52;1896:9;1883:23;1925:18;1966:2;1958:6;1955:14;1952:34;;;1982:1;1979;1972:12;1952:34;2005:22;;;;2061:4;2043:16;;;2039:27;2036:47;;;2079:1;2076;2069:12;2036:47;2105:17;;:::i;:::-;2159:2;2146:16;2206:42;2197:7;2193:56;2184:7;2181:69;2171:97;;2264:1;2261;2254:12;2171:97;2277:22;;2345:2;2337:11;;2324:25;2361:16;;;2358:36;;;2390:1;2387;2380:12;2358:36;2426:44;2462:7;2451:8;2447:2;2443:17;2426:44;:::i;:::-;2421:2;2414:5;2410:14;2403:68;;2524:2;2520;2516:11;2503:25;2498:2;2491:5;2487:14;2480:49;2574:2;2570;2566:11;2553:25;2538:40;;2622:10;2613:7;2609:24;2600:7;2597:37;2587:65;;2648:1;2645;2638:12;2587:65;2684:7;2679:2;2672:5;2668:14;2661:31;2711:5;2701:15;;;2763:2;2752:9;2748:18;2735:32;2725:42;;2820:2;2809:9;2805:18;2792:32;2776:48;;2849:2;2839:8;2836:16;2833:36;;;2865:1;2862;2855:12;2833:36;;2888:51;2931:7;2920:8;2909:9;2905:24;2888:51;:::i;:::-;2878:61;;;1651:1294;;;;;:::o;3603:184::-;3655:77;3652:1;3645:88;3752:4;3749:1;3742:15;3776:4;3773:1;3766:15;3792:258;3864:1;3874:113;3888:6;3885:1;3882:13;3874:113;;;3964:11;;;3958:18;3945:11;;;3938:39;3910:2;3903:10;3874:113;;;4005:6;4002:1;3999:13;3996:48;;;4040:1;4031:6;4026:3;4022:16;4015:27;3996:48;;3792:258;;;:::o;4055:511::-;4230:6;4219:9;4212:25;4273:2;4268;4257:9;4253:18;4246:30;4193:4;4305:6;4299:13;4348:6;4343:2;4332:9;4328:18;4321:34;4364:66;4423:6;4418:2;4407:9;4403:18;4398:2;4390:6;4386:15;4364:66;:::i;:::-;4482:2;4470:15;4487:66;4466:88;4451:104;;;;4557:2;4447:113;;4055:511;-1:-1:-1;;;4055:511:382:o;4571:274::-;4700:3;4738:6;4732:13;4754:53;4800:6;4795:3;4788:4;4780:6;4776:17;4754:53;:::i;:::-;4823:16;;;;;4571:274;-1:-1:-1;;4571:274:382:o;4850:184::-;4920:6;4973:2;4961:9;4952:7;4948:23;4944:32;4941:52;;;4989:1;4986;4979:12;4941:52;-1:-1:-1;5012:16:382;;4850:184;-1:-1:-1;4850:184:382:o","linkReferences":{},"immutableReferences":{"111494":[{"start":75,"length":32},{"start":339,"length":32}],"111500":[{"start":156,"length":32},{"start":251,"length":32}],"54211":[{"start":1103,"length":32}],"54213":[{"start":1061,"length":32}],"54215":[{"start":1019,"length":32}],"54217":[{"start":1186,"length":32}],"54219":[{"start":1223,"length":32}],"54221":[{"start":1144,"length":32}]}},"methodIdentifiers":{"ADMIN()":"2a0acc6a","PROOF_TYPEHASH()":"8b3e3bf6","verify((address,bytes,bytes32,uint32),bytes32,bytes)":"d855814f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_version\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admin\":\"Admin address that can sign off on drips.\",\"_name\":\"Contract name.\",\"_version\":\"The current major version of the signing domain.\"}},\"verify((address,bytes,bytes32,uint32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"valid_\":\"True if the drip parameters are valid.\"}}},\"title\":\"AdminFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ADMIN()\":{\"notice\":\"Admin address that can sign off on drips.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"verify((address,bytes,bytes32,uint32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":\"AdminFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9\",\"dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":"AdminFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3","urls":["bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9","dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"title":"AdminFaucetAuthModule"},"ast":{"absolutePath":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","id":111563,"exportedSymbols":{"AdminFaucetAuthModule":[111562],"EIP712":[54359],"Faucet":[111476],"IFaucetAuthModule":[111581],"SignatureChecker":[54205]},"nodeType":"SourceUnit","src":"32:2046:227","nodes":[{"id":111478,"nodeType":"PragmaDirective","src":"32:23:227","nodes":[],"literals":["solidity","0.8",".15"]},{"id":111480,"nodeType":"ImportDirective","src":"57:85:227","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","nameLocation":"-1:-1:-1","scope":111563,"sourceUnit":54360,"symbolAliases":[{"foreign":{"id":111479,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54359,"src":"66:6:227","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111482,"nodeType":"ImportDirective","src":"143:99:227","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","file":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","nameLocation":"-1:-1:-1","scope":111563,"sourceUnit":54206,"symbolAliases":[{"foreign":{"id":111481,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54205,"src":"152:16:227","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111484,"nodeType":"ImportDirective","src":"243:60:227","nodes":[],"absolutePath":"src/periphery/faucet/authmodules/IFaucetAuthModule.sol","file":"./IFaucetAuthModule.sol","nameLocation":"-1:-1:-1","scope":111563,"sourceUnit":111582,"symbolAliases":[{"foreign":{"id":111483,"name":"IFaucetAuthModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111581,"src":"252:17:227","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111486,"nodeType":"ImportDirective","src":"304:39:227","nodes":[],"absolutePath":"src/periphery/faucet/Faucet.sol","file":"../Faucet.sol","nameLocation":"-1:-1:-1","scope":111563,"sourceUnit":111477,"symbolAliases":[{"foreign":{"id":111485,"name":"Faucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111476,"src":"313:6:227","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111562,"nodeType":"ContractDefinition","src":"521:1556:227","nodes":[{"id":111494,"nodeType":"VariableDeclaration","src":"645:30:227","nodes":[],"constant":false,"documentation":{"id":111492,"nodeType":"StructuredDocumentation","src":"587:53:227","text":"@notice Admin address that can sign off on drips."},"functionSelector":"2a0acc6a","mutability":"immutable","name":"ADMIN","nameLocation":"670:5:227","scope":111562,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111493,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:227","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":111500,"nodeType":"VariableDeclaration","src":"734:104:227","nodes":[],"constant":false,"documentation":{"id":111495,"nodeType":"StructuredDocumentation","src":"682:47:227","text":"@notice EIP712 typehash for the Proof type."},"functionSelector":"8b3e3bf6","mutability":"immutable","name":"PROOF_TYPEHASH","nameLocation":"759:14:227","scope":111562,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"734:7:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50726f6f66286164647265737320726563697069656e742c62797465733332206e6f6e63652c6279746573333220696429","id":111498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"786:51:227","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""},"value":"Proof(address recipient,bytes32 nonce,bytes32 id)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""}],"id":111497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"776:9:227","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":111499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:62:227","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":111507,"nodeType":"StructDefinition","src":"1153:90:227","nodes":[],"canonicalName":"AdminFaucetAuthModule.Proof","members":[{"constant":false,"id":111502,"mutability":"mutable","name":"recipient","nameLocation":"1184:9:227","nodeType":"VariableDeclaration","scope":111507,"src":"1176:17:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111501,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:227","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111504,"mutability":"mutable","name":"nonce","nameLocation":"1211:5:227","nodeType":"VariableDeclaration","scope":111507,"src":"1203:13:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1203:7:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111506,"mutability":"mutable","name":"id","nameLocation":"1234:2:227","nodeType":"VariableDeclaration","scope":111507,"src":"1226:10:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1226:7:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Proof","nameLocation":"1160:5:227","scope":111562,"visibility":"public"},{"id":111526,"nodeType":"FunctionDefinition","src":"1427:128:227","nodes":[],"body":{"id":111525,"nodeType":"Block","src":"1524:31:227","nodes":[],"statements":[{"expression":{"id":111523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":111521,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111494,"src":"1534:5:227","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":111522,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111510,"src":"1542:6:227","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1534:14:227","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":111524,"nodeType":"ExpressionStatement","src":"1534:14:227"}]},"documentation":{"id":111508,"nodeType":"StructuredDocumentation","src":"1249:173:227","text":"@param _admin Admin address that can sign off on drips.\n @param _name Contract name.\n @param _version The current major version of the signing domain."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":111517,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111512,"src":"1507:5:227","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":111518,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111514,"src":"1514:8:227","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":111519,"kind":"baseConstructorSpecifier","modifierName":{"id":111516,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":54359,"src":"1500:6:227"},"nodeType":"ModifierInvocation","src":"1500:23:227"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":111515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111510,"mutability":"mutable","name":"_admin","nameLocation":"1447:6:227","nodeType":"VariableDeclaration","scope":111526,"src":"1439:14:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111509,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:227","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111512,"mutability":"mutable","name":"_name","nameLocation":"1469:5:227","nodeType":"VariableDeclaration","scope":111526,"src":"1455:19:227","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":111511,"name":"string","nodeType":"ElementaryTypeName","src":"1455:6:227","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":111514,"mutability":"mutable","name":"_version","nameLocation":"1490:8:227","nodeType":"VariableDeclaration","scope":111526,"src":"1476:22:227","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":111513,"name":"string","nodeType":"ElementaryTypeName","src":"1476:6:227","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1438:61:227"},"returnParameters":{"id":111520,"nodeType":"ParameterList","parameters":[],"src":"1524:0:227"},"scope":111562,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":111561,"nodeType":"FunctionDefinition","src":"1599:476:227","nodes":[],"body":{"id":111560,"nodeType":"Block","src":"1781:294:227","nodes":[],"statements":[{"expression":{"id":111558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":111539,"name":"valid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111537,"src":"1866:6:227","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":111542,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111494,"src":"1925:5:227","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"arguments":[{"id":111547,"name":"PROOF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111500,"src":"1982:14:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":111548,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111530,"src":"1998:7:227","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_memory_ptr","typeString":"struct Faucet.DripParameters memory"}},"id":111549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":111220,"src":"1998:17:227","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":111550,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111530,"src":"2017:7:227","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_memory_ptr","typeString":"struct Faucet.DripParameters memory"}},"id":111551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":111224,"src":"2017:13:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":111552,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111532,"src":"2032:3:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":111545,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1971:3:227","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":111546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1971:10:227","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":111553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1971:65:227","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":111544,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1961:9:227","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":111554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1961:76:227","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":111543,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"1944:16:227","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":111555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1944:94:227","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":111556,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111534,"src":"2052:6:227","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":111540,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54205,"src":"1875:16:227","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$54205_$","typeString":"type(library SignatureChecker)"}},"id":111541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":54204,"src":"1875:36:227","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":111557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1875:193:227","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1866:202:227","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111559,"nodeType":"ExpressionStatement","src":"1866:202:227"}]},"baseFunctions":[111580],"documentation":{"id":111527,"nodeType":"StructuredDocumentation","src":"1561:33:227","text":"@inheritdoc IFaucetAuthModule"},"functionSelector":"d855814f","implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1608:6:227","parameters":{"id":111535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111530,"mutability":"mutable","name":"_params","nameLocation":"1653:7:227","nodeType":"VariableDeclaration","scope":111561,"src":"1624:36:227","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_memory_ptr","typeString":"struct Faucet.DripParameters"},"typeName":{"id":111529,"nodeType":"UserDefinedTypeName","pathNode":{"id":111528,"name":"Faucet.DripParameters","nodeType":"IdentifierPath","referencedDeclaration":111227,"src":"1624:21:227"},"referencedDeclaration":111227,"src":"1624:21:227","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_storage_ptr","typeString":"struct Faucet.DripParameters"}},"visibility":"internal"},{"constant":false,"id":111532,"mutability":"mutable","name":"_id","nameLocation":"1678:3:227","nodeType":"VariableDeclaration","scope":111561,"src":"1670:11:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:227","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111534,"mutability":"mutable","name":"_proof","nameLocation":"1704:6:227","nodeType":"VariableDeclaration","scope":111561,"src":"1691:19:227","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111533,"name":"bytes","nodeType":"ElementaryTypeName","src":"1691:5:227","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1614:102:227"},"returnParameters":{"id":111538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111537,"mutability":"mutable","name":"valid_","nameLocation":"1769:6:227","nodeType":"VariableDeclaration","scope":111561,"src":"1764:11:227","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":111536,"name":"bool","nodeType":"ElementaryTypeName","src":"1764:4:227","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1763:13:227"},"scope":111562,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":111488,"name":"IFaucetAuthModule","nodeType":"IdentifierPath","referencedDeclaration":111581,"src":"555:17:227"},"id":111489,"nodeType":"InheritanceSpecifier","src":"555:17:227"},{"baseName":{"id":111490,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":54359,"src":"574:6:227"},"id":111491,"nodeType":"InheritanceSpecifier","src":"574:6:227"}],"canonicalName":"AdminFaucetAuthModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":111487,"nodeType":"StructuredDocumentation","src":"345:176:227","text":"@title AdminFaucetAuthModule\n @notice FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin\n as the constructor argument."},"fullyImplemented":true,"linearizedBaseContracts":[111562,54359,111581],"name":"AdminFaucetAuthModule","nameLocation":"530:21:227","scope":111563,"usedErrors":[]}],"license":"MIT"},"id":227}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_oracle","type":"address","internalType":"contract PreimageOracle"}],"stateMutability":"nonpayable"},{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b506040516105d23803806105d283398101604081905261002f91610059565b608091909152600080546001600160a01b0319166001600160a01b03909216919091179055610096565b6000806040838503121561006c57600080fd5b825160208401519092506001600160a01b038116811461008b57600080fd5b809150509250929050565b6080516105226100b0600039600060af01526105226000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1563:309:-:0;;;615:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;686:37;;;;;733:6;:16;;-1:-1:-1;;;;;;733:16:309;-1:-1:-1;;;;;733:16:309;;;;;;;;;490:1563;;14:402:350;144:6;152;205:2;193:9;184:7;180:23;176:32;173:52;;;221:1;218;211:12;173:52;244:16;;303:2;288:18;;282:25;244:16;;-1:-1:-1;;;;;;336:31:350;;326:42;;316:70;;382:1;379;372:12;316:70;405:5;395:15;;;14:402;;;;;:::o;:::-;490:1563:309;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1563:309:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;579:29;;;;;;;;;;;;215:42:350;203:55;;;185:74;;173:2;158:18;579:29:309;;;;;;;;794:1257;;;;;;:::i;:::-;;:::i;:::-;;;1558:25:350;;;1546:2;1531:18;794:1257:309;1412:177:350;794:1257:309;951:18;985;1013:13;1108:1;1086:17;1073:36;;1066:1;1051:10;;1041:21;;;;;;;:::i;:::-;;;;;;;;:26;;1040:70;1036:809;;1211:11;1227:6;;;;:19;1264:86;5504:4:190;1336:13:309;1264:28;:86::i;:::-;1227:140;;;;;;;;;;;;;2052:25:350;;;;1352:1:309;2093:18:350;;;2086:34;2025:18;;1227:140:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1210:157:309;-1:-1:-1;1381:29:309;1413:40;1452:1;1438:10;1431:3;1415:19;;;1414:34;1413:40;:::i;:::-;1505:1;1480:26;;;;-1:-1:-1;1381:72:309;-1:-1:-1;1521:29:309;1554:33;;;;1565:10;1554:33;:::i;:::-;1520:67;-1:-1:-1;1609:34:309;1633:10;1520:67;1609:34;:::i;:::-;1601:42;;1112:542;;;1036:809;;;1745:42;;;;1756:10;1745:42;:::i;:::-;1723:64;;-1:-1:-1;1723:64:309;-1:-1:-1;1723:64:309;1801:12;1723:64;1801:12;:::i;:::-;;;;1827:7;;;;;:::i;:::-;;;;1036:809;1905:29;;;;;;2052:25:350;;;2093:18;;;2086:34;;;2025:18;;1905:29:309;;;;;;;;;;;;;1895:40;;1905:29;1895:40;;;;2001:19;1985:36;2023:11;1982:53;;794:1257;-1:-1:-1;;;;;;;;794:1257:309:o;552:449:152:-;835:11;860:19;848:32;;832:49;965:29;832:49;980:13;1676:4;1670:11;;1533:21;1787:15;;;1828:8;1822:4;1815:22;1850:27;;;1996:4;1983:18;;;2098:17;;2003:19;1979:44;2025:11;1976:61;;1455:676;965:29;958:36;552:449;-1:-1:-1;;;552:449:152:o;270:347:350:-;321:8;331:6;385:3;378:4;370:6;366:17;362:27;352:55;;403:1;400;393:12;352:55;-1:-1:-1;426:20:350;;469:18;458:30;;455:50;;;501:1;498;491:12;455:50;538:4;530:6;526:17;514:29;;590:3;583:4;574:6;566;562:19;558:30;555:39;552:59;;;607:1;604;597:12;552:59;270:347;;;;;:::o;622:785::-;721:6;729;737;745;753;806:2;794:9;785:7;781:23;777:32;774:52;;;822:1;819;812:12;774:52;862:9;849:23;891:18;932:2;924:6;921:14;918:34;;;948:1;945;938:12;918:34;987:58;1037:7;1028:6;1017:9;1013:22;987:58;:::i;:::-;1064:8;;-1:-1:-1;961:84:350;-1:-1:-1;1152:2:350;1137:18;;1124:32;;-1:-1:-1;1168:16:350;;;1165:36;;;1197:1;1194;1187:12;1165:36;;1236:60;1288:7;1277:8;1266:9;1262:24;1236:60;:::i;:::-;622:785;;;;-1:-1:-1;1315:8:350;1397:2;1382:18;1369:32;;622:785;-1:-1:-1;;;;622:785:350:o;1594:271::-;1777:6;1769;1764:3;1751:33;1733:3;1803:16;;1828:13;;;1803:16;1594:271;-1:-1:-1;1594:271:350:o;2131:245::-;2210:6;2218;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;-1:-1:-1;;2310:16:350;;2366:2;2351:18;;;2345:25;2310:16;;2345:25;;-1:-1:-1;2131:245:350:o;2381:184::-;2433:77;2430:1;2423:88;2530:4;2527:1;2520:15;2554:4;2551:1;2544:15;2570:125;2610:4;2638:1;2635;2632:8;2629:34;;;2643:18;;:::i;:::-;-1:-1:-1;2680:9:350;;2570:125::o;2700:180::-;2759:6;2812:2;2800:9;2791:7;2787:23;2783:32;2780:52;;;2828:1;2825;2818:12;2780:52;-1:-1:-1;2851:23:350;;2700:180;-1:-1:-1;2700:180:350:o;2885:128::-;2925:3;2956:1;2952:6;2949:1;2946:13;2943:39;;;2962:18;;:::i;:::-;-1:-1:-1;2998:9:350;;2885:128::o;3018:248::-;3086:6;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;;3186:23:350;;;3256:2;3241:18;;;3228:32;;-1:-1:-1;3018:248:350:o;3271:195::-;3310:3;3341:66;3334:5;3331:77;3328:103;;3411:18;;:::i;:::-;-1:-1:-1;3458:1:350;3447:13;;3271:195::o","linkReferences":{},"immutableReferences":{"191159":[{"start":175,"length":32}]}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"contract PreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).\",\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"AlphabetVM\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/AlphabetVM.sol\":\"AlphabetVM\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":{\"keccak256\":\"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1\",\"dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx\"]},\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]},\"src/cannon/PreimageOracle.sol\":{\"keccak256\":\"0x1116ac9bc3d1fd37f51ccc96582884e83442fb7287472e6538aa8c337cde9053\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97afc2cd248515221efb422bac44609957a76f87ae613099e35432840c021\",\"dweb:/ipfs/Qmb9iSSYYScYiLFnDbLtecytVV7DN6fzZT3dmPUNK3CmGQ\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/cannon/libraries/CannonErrors.sol\":{\"keccak256\":\"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25\",\"dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8\"]},\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"test/mocks/AlphabetVM.sol\":{\"keccak256\":\"0xbef9553bb48db6d37cb1855dd149a73e256156a2f5f5ce45040f39f5aa32dddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b02402f79fd62a08bf7264b2866688410c86e87af4145d196e9378f9945f86ce\",\"dweb:/ipfs/QmWrRnqbfWF4AKibziRrZFZqWoNrrQgJiTHPGEZoitDop5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"contract PreimageOracle","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"view","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/AlphabetVM.sol":"AlphabetVM"},"evmVersion":"london","libraries":{}},"sources":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":{"keccak256":"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672","urls":["bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1","dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx"],"license":"MIT"},"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"},"src/cannon/PreimageOracle.sol":{"keccak256":"0x1116ac9bc3d1fd37f51ccc96582884e83442fb7287472e6538aa8c337cde9053","urls":["bzz-raw://20a97afc2cd248515221efb422bac44609957a76f87ae613099e35432840c021","dweb:/ipfs/Qmb9iSSYYScYiLFnDbLtecytVV7DN6fzZT3dmPUNK3CmGQ"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/cannon/libraries/CannonErrors.sol":{"keccak256":"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b","urls":["bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25","dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8"],"license":"MIT"},"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"test/mocks/AlphabetVM.sol":{"keccak256":"0xbef9553bb48db6d37cb1855dd149a73e256156a2f5f5ce45040f39f5aa32dddd","urls":["bzz-raw://b02402f79fd62a08bf7264b2866688410c86e87af4145d196e9378f9945f86ce","dweb:/ipfs/QmWrRnqbfWF4AKibziRrZFZqWoNrrQgJiTHPGEZoitDop5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191162,"contract":"test/mocks/AlphabetVM.sol:AlphabetVM","label":"oracle","offset":0,"slot":"0","type":"t_contract(IPreimageOracle)93444"}],"types":{"t_contract(IPreimageOracle)93444":{"encoding":"inplace","label":"contract IPreimageOracle","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}}},"devdoc":{"version":1,"kind":"dev","details":"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"AlphabetVM"},"id":309}
{"abi":[{"type":"constructor","inputs":[{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_oracle","type":"address","internalType":"contract PreimageOracle"}],"stateMutability":"nonpayable"},{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b506040516105d23803806105d283398101604081905261002f91610059565b608091909152600080546001600160a01b0319166001600160a01b03909216919091179055610096565b6000806040838503121561006c57600080fd5b825160208401519092506001600160a01b038116811461008b57600080fd5b809150509250929050565b6080516105226100b0600039600060af01526105226000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"485:1563:340:-:0;;;610:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;681:37;;;;;728:6;:16;;-1:-1:-1;;;;;;728:16:340;-1:-1:-1;;;;;728:16:340;;;;;;;;;485:1563;;14:403:382;145:6;153;206:2;194:9;185:7;181:23;177:32;174:52;;;222:1;219;212:12;174:52;245:16;;304:2;289:18;;283:25;245:16;;-1:-1:-1;;;;;;337:31:382;;327:42;;317:70;;383:1;380;373:12;317:70;406:5;396:15;;;14:403;;;;;:::o;:::-;485:1563:340;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"485:1563:340:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;574:29;;;;;;;;;;;;215:42:382;203:55;;;185:74;;173:2;158:18;574:29:340;;;;;;;;789:1257;;;;;;:::i;:::-;;:::i;:::-;;;1558:25:382;;;1546:2;1531:18;789:1257:340;1412:177:382;789:1257:340;946:18;980;1008:13;1103:1;1081:17;1068:36;;1061:1;1046:10;;1036:21;;;;;;;:::i;:::-;;;;;;;;:26;;1035:70;1031:809;;1206:11;1222:6;;;;:19;1259:86;2603:4:184;1331:13:340;1259:28;:86::i;:::-;1222:140;;;;;;;;;;;;;2052:25:382;;;;1347:1:340;2093:18:382;;;2086:34;2025:18;;1222:140:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1205:157:340;-1:-1:-1;1376:29:340;1408:40;1447:1;1433:10;1426:3;1410:19;;;1409:34;1408:40;:::i;:::-;1500:1;1475:26;;;;-1:-1:-1;1376:72:340;-1:-1:-1;1516:29:340;1549:33;;;;1560:10;1549:33;:::i;:::-;1515:67;-1:-1:-1;1604:34:340;1628:10;1515:67;1604:34;:::i;:::-;1596:42;;1107:542;;;1031:809;;;1740:42;;;;1751:10;1740:42;:::i;:::-;1718:64;;-1:-1:-1;1718:64:340;-1:-1:-1;1718:64:340;1796:12;1718:64;1796:12;:::i;:::-;;;;1822:7;;;;;:::i;:::-;;;;1031:809;1900:29;;;;;;2052:25:382;;;2093:18;;;2086:34;;;2025:18;;1900:29:340;;;;;;;;;;;;;1890:40;;1900:29;1890:40;;;;1996:19;1980:36;2018:11;1977:53;;789:1257;-1:-1:-1;;;;;;;;789:1257:340:o;552:449:164:-;835:11;860:19;848:32;;832:49;965:29;832:49;980:13;1676:4;1670:11;;1533:21;1787:15;;;1828:8;1822:4;1815:22;1850:27;;;1996:4;1983:18;;;2098:17;;2003:19;1979:44;2025:11;1976:61;;1455:676;965:29;958:36;552:449;-1:-1:-1;;;552:449:164:o;270:347:382:-;321:8;331:6;385:3;378:4;370:6;366:17;362:27;352:55;;403:1;400;393:12;352:55;-1:-1:-1;426:20:382;;469:18;458:30;;455:50;;;501:1;498;491:12;455:50;538:4;530:6;526:17;514:29;;590:3;583:4;574:6;566;562:19;558:30;555:39;552:59;;;607:1;604;597:12;552:59;270:347;;;;;:::o;622:785::-;721:6;729;737;745;753;806:2;794:9;785:7;781:23;777:32;774:52;;;822:1;819;812:12;774:52;862:9;849:23;891:18;932:2;924:6;921:14;918:34;;;948:1;945;938:12;918:34;987:58;1037:7;1028:6;1017:9;1013:22;987:58;:::i;:::-;1064:8;;-1:-1:-1;961:84:382;-1:-1:-1;1152:2:382;1137:18;;1124:32;;-1:-1:-1;1168:16:382;;;1165:36;;;1197:1;1194;1187:12;1165:36;;1236:60;1288:7;1277:8;1266:9;1262:24;1236:60;:::i;:::-;622:785;;;;-1:-1:-1;1315:8:382;1397:2;1382:18;1369:32;;622:785;-1:-1:-1;;;;622:785:382:o;1594:271::-;1777:6;1769;1764:3;1751:33;1733:3;1803:16;;1828:13;;;1803:16;1594:271;-1:-1:-1;1594:271:382:o;2131:245::-;2210:6;2218;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;-1:-1:-1;;2310:16:382;;2366:2;2351:18;;;2345:25;2310:16;;2345:25;;-1:-1:-1;2131:245:382:o;2381:184::-;2433:77;2430:1;2423:88;2530:4;2527:1;2520:15;2554:4;2551:1;2544:15;2570:125;2610:4;2638:1;2635;2632:8;2629:34;;;2643:18;;:::i;:::-;-1:-1:-1;2680:9:382;;2570:125::o;2700:180::-;2759:6;2812:2;2800:9;2791:7;2787:23;2783:32;2780:52;;;2828:1;2825;2818:12;2780:52;-1:-1:-1;2851:23:382;;2700:180;-1:-1:-1;2700:180:382:o;2885:128::-;2925:3;2956:1;2952:6;2949:1;2946:13;2943:39;;;2962:18;;:::i;:::-;-1:-1:-1;2998:9:382;;2885:128::o;3018:248::-;3086:6;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;;3186:23:382;;;3256:2;3241:18;;;3228:32;;-1:-1:-1;3018:248:382:o;3271:195::-;3310:3;3341:66;3334:5;3331:77;3328:103;;3411:18;;:::i;:::-;-1:-1:-1;3458:1:382;3447:13;;3271:195::o","linkReferences":{},"immutableReferences":{"220175":[{"start":175,"length":32}]}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"contract PreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).\",\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"AlphabetVM\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/AlphabetVM.sol\":\"AlphabetVM\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":{\"keccak256\":\"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1\",\"dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx\"]},\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]},\"src/cannon/PreimageOracle.sol\":{\"keccak256\":\"0xe572691ec2f5cf462c0c1cbdc665ec1ac43eeba8371f346c33f7c32bbd70afa0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3773f193ecdb679742860dd2a67cfb7ff700040af6ab1404d72418923a1f87c\",\"dweb:/ipfs/QmSCkG6rWYXG6RQJ6bXbdUXo2WeUxba65CMdneu6BrxrZ8\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/cannon/libraries/CannonErrors.sol\":{\"keccak256\":\"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25\",\"dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8\"]},\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]},\"src/dispute/lib/Types.sol\":{\"keccak256\":\"0x5d6a2b87e0358d54bc22a8fdcfcd17e347bcfa69b774d9c75694e3f843c2c2a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0ea07c78675e3fbfacdf92026ed77cd2b6596b358c09a7f29148b6aa80a6bd\",\"dweb:/ipfs/QmaNVv9NQg1Ea6AoHvv1oZCVX2ZAuwoW5vBMf7cVMvayqC\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"test/mocks/AlphabetVM.sol\":{\"keccak256\":\"0xd9d8156766638c24e2825aa0da3db80b18028f83439c8c4be0f1f255dd7cb9ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1024c4a4c53a588957e63035651d029cad5825763734c4d3e49333caaf94fa03\",\"dweb:/ipfs/QmV9dQegpFGJWrJKpCVLM4r3GAkHMSA9qiyETEnG6X9EcK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"contract PreimageOracle","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"view","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/AlphabetVM.sol":"AlphabetVM"},"evmVersion":"london","libraries":{}},"sources":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":{"keccak256":"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672","urls":["bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1","dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx"],"license":"MIT"},"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"},"src/cannon/PreimageOracle.sol":{"keccak256":"0xe572691ec2f5cf462c0c1cbdc665ec1ac43eeba8371f346c33f7c32bbd70afa0","urls":["bzz-raw://e3773f193ecdb679742860dd2a67cfb7ff700040af6ab1404d72418923a1f87c","dweb:/ipfs/QmSCkG6rWYXG6RQJ6bXbdUXo2WeUxba65CMdneu6BrxrZ8"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/cannon/libraries/CannonErrors.sol":{"keccak256":"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b","urls":["bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25","dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8"],"license":"MIT"},"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"},"src/dispute/lib/Types.sol":{"keccak256":"0x5d6a2b87e0358d54bc22a8fdcfcd17e347bcfa69b774d9c75694e3f843c2c2a8","urls":["bzz-raw://df0ea07c78675e3fbfacdf92026ed77cd2b6596b358c09a7f29148b6aa80a6bd","dweb:/ipfs/QmaNVv9NQg1Ea6AoHvv1oZCVX2ZAuwoW5vBMf7cVMvayqC"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"test/mocks/AlphabetVM.sol":{"keccak256":"0xd9d8156766638c24e2825aa0da3db80b18028f83439c8c4be0f1f255dd7cb9ef","urls":["bzz-raw://1024c4a4c53a588957e63035651d029cad5825763734c4d3e49333caaf94fa03","dweb:/ipfs/QmV9dQegpFGJWrJKpCVLM4r3GAkHMSA9qiyETEnG6X9EcK"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":220178,"contract":"test/mocks/AlphabetVM.sol:AlphabetVM","label":"oracle","offset":0,"slot":"0","type":"t_contract(IPreimageOracle)99340"}],"types":{"t_contract(IPreimageOracle)99340":{"encoding":"inplace","label":"contract IPreimageOracle","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}}},"devdoc":{"version":1,"kind":"dev","details":"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"AlphabetVM"},"ast":{"absolutePath":"test/mocks/AlphabetVM.sol","id":220315,"exportedSymbols":{"AlphabetVM":[220314],"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameStatus":[104208],"GameType":[104188],"GameTypes":[104248],"Hash":[104143],"IBigStepper":[103044],"IPreimageOracle":[99340],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"LocalPreimageKey":[104304],"OutputRoot":[104214],"Position":[103754],"PreimageKeyLib":[97791],"PreimageOracle":[99268],"Timestamp":[104158],"VMStatus":[104173],"VMStatuses":[104282]},"nodeType":"SourceUnit","src":"32:2017:340","nodes":[{"id":220162,"nodeType":"PragmaDirective","src":"32:24:340","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":220165,"nodeType":"ImportDirective","src":"58:86:340","nodes":[],"absolutePath":"src/dispute/interfaces/IBigStepper.sol","file":"src/dispute/interfaces/IBigStepper.sol","nameLocation":"-1:-1:-1","scope":220315,"sourceUnit":103045,"symbolAliases":[{"foreign":{"id":220163,"name":"IBigStepper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103044,"src":"67:11:340","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":220164,"name":"IPreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99340,"src":"80:15:340","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220168,"nodeType":"ImportDirective","src":"145:79:340","nodes":[],"absolutePath":"src/cannon/PreimageOracle.sol","file":"src/cannon/PreimageOracle.sol","nameLocation":"-1:-1:-1","scope":220315,"sourceUnit":99269,"symbolAliases":[{"foreign":{"id":220166,"name":"PreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99268,"src":"154:14:340","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":220167,"name":"PreimageKeyLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97791,"src":"170:14:340","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220169,"nodeType":"ImportDirective","src":"225:35:340","nodes":[],"absolutePath":"src/dispute/lib/Types.sol","file":"src/dispute/lib/Types.sol","nameLocation":"-1:-1:-1","scope":220315,"sourceUnit":104305,"symbolAliases":[],"unitAlias":""},{"id":220314,"nodeType":"ContractDefinition","src":"485:1563:340","nodes":[{"id":220175,"nodeType":"VariableDeclaration","src":"526:42:340","nodes":[],"constant":false,"mutability":"immutable","name":"ABSOLUTE_PRESTATE","nameLocation":"551:17:340","scope":220314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":220174,"nodeType":"UserDefinedTypeName","pathNode":{"id":220173,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"526:5:340"},"referencedDeclaration":104096,"src":"526:5:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"id":220178,"nodeType":"VariableDeclaration","src":"574:29:340","nodes":[],"baseFunctions":[103043],"constant":false,"functionSelector":"7dc0d1d0","mutability":"mutable","name":"oracle","nameLocation":"597:6:340","scope":220314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"},"typeName":{"id":220177,"nodeType":"UserDefinedTypeName","pathNode":{"id":220176,"name":"IPreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":99340,"src":"574:15:340"},"referencedDeclaration":99340,"src":"574:15:340","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"}},"visibility":"public"},{"id":220196,"nodeType":"FunctionDefinition","src":"610:141:340","nodes":[],"body":{"id":220195,"nodeType":"Block","src":"671:80:340","nodes":[],"statements":[{"expression":{"id":220189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220187,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220175,"src":"681:17:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":220188,"name":"_absolutePrestate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220181,"src":"701:17:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"src":"681:37:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"id":220190,"nodeType":"ExpressionStatement","src":"681:37:340"},{"expression":{"id":220193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220191,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220178,"src":"728:6:340","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":220192,"name":"_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220184,"src":"737:7:340","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$99268","typeString":"contract PreimageOracle"}},"src":"728:16:340","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"}},"id":220194,"nodeType":"ExpressionStatement","src":"728:16:340"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":220185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220181,"mutability":"mutable","name":"_absolutePrestate","nameLocation":"628:17:340","nodeType":"VariableDeclaration","scope":220196,"src":"622:23:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":220180,"nodeType":"UserDefinedTypeName","pathNode":{"id":220179,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"622:5:340"},"referencedDeclaration":104096,"src":"622:5:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":220184,"mutability":"mutable","name":"_oracle","nameLocation":"662:7:340","nodeType":"VariableDeclaration","scope":220196,"src":"647:22:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$99268","typeString":"contract PreimageOracle"},"typeName":{"id":220183,"nodeType":"UserDefinedTypeName","pathNode":{"id":220182,"name":"PreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":99268,"src":"647:14:340"},"referencedDeclaration":99268,"src":"647:14:340","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$99268","typeString":"contract PreimageOracle"}},"visibility":"internal"}],"src":"621:49:340"},"returnParameters":{"id":220186,"nodeType":"ParameterList","parameters":[],"src":"671:0:340"},"scope":220314,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":220313,"nodeType":"FunctionDefinition","src":"789:1257:340","nodes":[],"body":{"id":220312,"nodeType":"Block","src":"970:1076:340","nodes":[],"statements":[{"assignments":[220209],"declarations":[{"constant":false,"id":220209,"mutability":"mutable","name":"traceIndex","nameLocation":"988:10:340","nodeType":"VariableDeclaration","scope":220312,"src":"980:18:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220208,"name":"uint256","nodeType":"ElementaryTypeName","src":"980:7:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":220210,"nodeType":"VariableDeclarationStatement","src":"980:18:340"},{"assignments":[220212],"declarations":[{"constant":false,"id":220212,"mutability":"mutable","name":"claim","nameLocation":"1016:5:340","nodeType":"VariableDeclaration","scope":220312,"src":"1008:13:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":220213,"nodeType":"VariableDeclarationStatement","src":"1008:13:340"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":220227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":220218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":220215,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220199,"src":"1046:10:340","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":220214,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1036:9:340","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1036:21:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":220217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1061:1:340","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1036:26:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":220219,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:28:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":220225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":220222,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220175,"src":"1081:17:340","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}],"expression":{"id":220220,"name":"Claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104096,"src":"1068:5:340","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Claim_$104096_$","typeString":"type(Claim)"}},"id":220221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"1068:12:340","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Claim_$104096_$returns$_t_bytes32_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":220223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1068:31:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":220224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:340","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1068:36:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":220226,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:38:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1035:70:340","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":220299,"nodeType":"Block","src":"1655:185:340","statements":[{"expression":{"id":220291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":220279,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220209,"src":"1719:10:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":220280,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220212,"src":"1731:5:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":220281,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1718:19:340","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":220284,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220199,"src":"1751:10:340","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":220286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1764:7:340","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":220285,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:340","typeDescriptions":{}}},{"id":220288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1773:7:340","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":220287,"name":"uint256","nodeType":"ElementaryTypeName","src":"1773:7:340","typeDescriptions":{}}}],"id":220289,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1763:18:340","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}],"expression":{"id":220282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1740:3:340","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1740:10:340","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":220290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1740:42:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1718:64:340","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":220292,"nodeType":"ExpressionStatement","src":"1718:64:340"},{"expression":{"id":220294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1796:12:340","subExpression":{"id":220293,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220209,"src":"1796:10:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220295,"nodeType":"ExpressionStatement","src":"1796:12:340"},{"expression":{"id":220297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1822:7:340","subExpression":{"id":220296,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220212,"src":"1822:5:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220298,"nodeType":"ExpressionStatement","src":"1822:7:340"}]},"id":220300,"nodeType":"IfStatement","src":"1031:809:340","trueBody":{"id":220278,"nodeType":"Block","src":"1107:542:340","statements":[{"assignments":[220229,null],"declarations":[{"constant":false,"id":220229,"mutability":"mutable","name":"dat","nameLocation":"1214:3:340","nodeType":"VariableDeclaration","scope":220278,"src":"1206:11:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1206:7:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},null],"id":220240,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":220234,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104304,"src":"1288:16:340","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$104304_$","typeString":"type(library LocalPreimageKey)"}},"id":220235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DISPUTED_L2_BLOCK_NUMBER","nodeType":"MemberAccess","referencedDeclaration":104299,"src":"1288:41:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":220236,"name":"_localContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220203,"src":"1331:13:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":220232,"name":"PreimageKeyLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97791,"src":"1259:14:340","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PreimageKeyLib_$97791_$","typeString":"type(library PreimageKeyLib)"}},"id":220233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"localizeIdent","nodeType":"MemberAccess","referencedDeclaration":97768,"src":"1259:28:340","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32) view returns (bytes32)"}},"id":220237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1259:86:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":220238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1347:1:340","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":220230,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220178,"src":"1222:6:340","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"}},"id":220231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"readPreimage","nodeType":"MemberAccess","referencedDeclaration":99283,"src":"1222:19:340","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$_t_uint256_$","typeString":"function (bytes32,uint256) view external returns (bytes32,uint256)"}},"id":220239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1222:140:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1205:157:340"},{"assignments":[220242],"declarations":[{"constant":false,"id":220242,"mutability":"mutable","name":"startingL2BlockNumber","nameLocation":"1384:21:340","nodeType":"VariableDeclaration","scope":220278,"src":"1376:29:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":220255,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":220254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":220251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":220248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":220245,"name":"dat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220229,"src":"1418:3:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":220244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1410:7:340","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":220243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1410:7:340","typeDescriptions":{}}},"id":220246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1410:12:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":220247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1426:3:340","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1410:19:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":220249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1409:21:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646464646464646","id":220250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1433:10:340","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1409:34:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":220252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1408:36:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":220253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1447:1:340","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1408:40:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1376:72:340"},{"expression":{"id":220260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220256,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220209,"src":"1462:10:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":220259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220257,"name":"startingL2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220242,"src":"1475:21:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":220258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1500:1:340","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1475:26:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1462:39:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220261,"nodeType":"ExpressionStatement","src":"1462:39:340"},{"assignments":[220263],"declarations":[{"constant":false,"id":220263,"mutability":"mutable","name":"absolutePrestateClaim","nameLocation":"1524:21:340","nodeType":"VariableDeclaration","scope":220278,"src":"1516:29:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220262,"name":"uint256","nodeType":"ElementaryTypeName","src":"1516:7:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":220271,"initialValue":{"arguments":[{"id":220266,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220199,"src":"1560:10:340","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":220268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1573:7:340","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":220267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:340","typeDescriptions":{}}}],"id":220269,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1572:9:340","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":220264,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1549:3:340","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1549:10:340","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":220270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1549:33:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1515:67:340"},{"expression":{"id":220276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220272,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220212,"src":"1596:5:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":220275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220273,"name":"absolutePrestateClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220263,"src":"1604:21:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":220274,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220209,"src":"1628:10:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1604:34:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1596:42:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220277,"nodeType":"ExpressionStatement","src":"1596:42:340"}]}},{"expression":{"id":220309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220301,"name":"postState_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220206,"src":"1877:10:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":220305,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220209,"src":"1911:10:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":220306,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220212,"src":"1923:5:340","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":220303,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1900:3:340","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1900:10:340","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":220307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1900:29:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220302,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1890:9:340","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1890:40:340","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1877:53:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":220310,"nodeType":"ExpressionStatement","src":"1877:53:340"},{"AST":{"nodeType":"YulBlock","src":"1949:91:340","statements":[{"nodeType":"YulAssignment","src":"1963:67:340","value":{"arguments":[{"arguments":[{"name":"postState_","nodeType":"YulIdentifier","src":"1984:10:340"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2004:3:340","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2009:4:340","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2000:3:340"},"nodeType":"YulFunctionCall","src":"2000:14:340"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1996:3:340"},"nodeType":"YulFunctionCall","src":"1996:19:340"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1980:3:340"},"nodeType":"YulFunctionCall","src":"1980:36:340"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2022:3:340","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2027:1:340","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2018:3:340"},"nodeType":"YulFunctionCall","src":"2018:11:340"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1977:2:340"},"nodeType":"YulFunctionCall","src":"1977:53:340"},"variableNames":[{"name":"postState_","nodeType":"YulIdentifier","src":"1963:10:340"}]}]},"evmVersion":"london","externalReferences":[{"declaration":220206,"isOffset":false,"isSlot":false,"src":"1963:10:340","valueSize":1},{"declaration":220206,"isOffset":false,"isSlot":false,"src":"1984:10:340","valueSize":1}],"id":220311,"nodeType":"InlineAssembly","src":"1940:100:340"}]},"baseFunctions":[103036],"documentation":{"id":220197,"nodeType":"StructuredDocumentation","src":"757:27:340","text":"@inheritdoc IBigStepper"},"functionSelector":"e14ced32","implemented":true,"kind":"function","modifiers":[],"name":"step","nameLocation":"798:4:340","parameters":{"id":220204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220199,"mutability":"mutable","name":"_stateData","nameLocation":"827:10:340","nodeType":"VariableDeclaration","scope":220313,"src":"812:25:340","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":220198,"name":"bytes","nodeType":"ElementaryTypeName","src":"812:5:340","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":220201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":220313,"src":"847:14:340","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":220200,"name":"bytes","nodeType":"ElementaryTypeName","src":"847:5:340","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":220203,"mutability":"mutable","name":"_localContext","nameLocation":"879:13:340","nodeType":"VariableDeclaration","scope":220313,"src":"871:21:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"871:7:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"802:96:340"},"returnParameters":{"id":220207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220206,"mutability":"mutable","name":"postState_","nameLocation":"954:10:340","nodeType":"VariableDeclaration","scope":220313,"src":"946:18:340","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"946:7:340","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"945:20:340"},"scope":220314,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":220171,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":103044,"src":"508:11:340"},"id":220172,"nodeType":"InheritanceSpecifier","src":"508:11:340"}],"canonicalName":"AlphabetVM","contractDependencies":[],"contractKind":"contract","documentation":{"id":220170,"nodeType":"StructuredDocumentation","src":"262:223:340","text":"@title AlphabetVM\n @dev A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works\n for games with an execution trace subgame max depth of 3 (8 instructions per subgame)."},"fullyImplemented":true,"linearizedBaseContracts":[220314,103044],"name":"AlphabetVM","nameLocation":"494:10:340","scope":220315,"usedErrors":[]}],"license":"MIT"},"id":340}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"attest","inputs":[{"name":"_attestations","type":"tuple[]","internalType":"struct AttestationStation.AttestationData[]","components":[{"name":"about","type":"address","internalType":"address"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"val","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"_about","type":"address","internalType":"address"},{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_val","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"about","type":"address","indexed":true,"internalType":"address"},{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:213:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:213:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;720:85;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:40;;;;;;;;;;;;;;;;;;;;;1875:375;;;;;;:::i;:::-;;:::i;:::-;;1549:200;;;;;;:::i;:::-;;:::i;720:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1875:375::-;1969:13;1952:14;1999:245;2023:6;2019:1;:10;1999:245;;;2046:34;2083:13;;2097:1;2083:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2046:53;;;:::i;:::-;;;2114:59;2121:11;:17;;;2140:11;:15;;;2157:11;:15;;;2114:6;:59::i;:::-;-1:-1:-1;2216:3:213;;1999:245;;;;1942:308;1875:375;;:::o;1549:200::-;1644:10;1631:12;:24;;;;;;;;;;;;:32;;;;;;;;;:38;;;;;;;;:45;1672:4;1631:38;:45;:::i;:::-;;1731:4;1723:6;1692:50;;1711:10;1692:50;;;1737:4;1692:50;;;;;;:::i;:::-;;;;;;;;1549:200;;;:::o;14:196:350:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;548:530::-;589:3;627:5;621:12;654:6;649:3;642:19;679:1;689:162;703:6;700:1;697:13;689:162;;;765:4;821:13;;;817:22;;811:29;793:11;;;789:20;;782:59;718:12;689:162;;;869:6;866:1;863:13;860:87;;;935:1;928:4;919:6;914:3;910:16;906:27;899:38;860:87;-1:-1:-1;992:2:350;980:15;997:66;976:88;967:98;;;;1067:4;963:109;;548:530;-1:-1:-1;;548:530:350:o;1083:217::-;1230:2;1219:9;1212:21;1193:4;1250:44;1290:2;1279:9;1275:18;1267:6;1250:44;:::i;:::-;1242:52;1083:217;-1:-1:-1;;;1083:217:350:o;1529:652::-;1652:6;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;1769:9;1756:23;1798:18;1839:2;1831:6;1828:14;1825:34;;;1855:1;1852;1845:12;1825:34;1893:6;1882:9;1878:22;1868:32;;1938:7;1931:4;1927:2;1923:13;1919:27;1909:55;;1960:1;1957;1950:12;1909:55;2000:2;1987:16;2026:2;2018:6;2015:14;2012:34;;;2042:1;2039;2032:12;2012:34;2095:7;2090:2;2080:6;2077:1;2073:14;2069:2;2065:23;2061:32;2058:45;2055:65;;;2116:1;2113;2106:12;2055:65;2147:2;2139:11;;;;;2169:6;;-1:-1:-1;1529:652:350;;-1:-1:-1;;;;1529:652:350:o;2186:184::-;2238:77;2235:1;2228:88;2335:4;2332:1;2325:15;2359:4;2356:1;2349:15;2375:777;2417:5;2470:3;2463:4;2455:6;2451:17;2447:27;2437:55;;2488:1;2485;2478:12;2437:55;2524:6;2511:20;2550:18;2587:2;2583;2580:10;2577:36;;;2593:18;;:::i;:::-;2727:2;2721:9;2789:4;2781:13;;2632:66;2777:22;;;2801:2;2773:31;2769:40;2757:53;;;2825:18;;;2845:22;;;2822:46;2819:72;;;2871:18;;:::i;:::-;2911:10;2907:2;2900:22;2946:2;2938:6;2931:18;2992:3;2985:4;2980:2;2972:6;2968:15;2964:26;2961:35;2958:55;;;3009:1;3006;2999:12;2958:55;3073:2;3066:4;3058:6;3054:17;3047:4;3039:6;3035:17;3022:54;3120:1;3113:4;3108:2;3100:6;3096:15;3092:26;3085:37;3140:6;3131:15;;;;;;2375:777;;;;:::o;3157:462::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3351:29;3370:9;3351:29;:::i;:::-;3341:39;;3427:2;3416:9;3412:18;3399:32;3389:42;;3482:2;3471:9;3467:18;3454:32;3509:18;3501:6;3498:30;3495:50;;;3541:1;3538;3531:12;3495:50;3564:49;3605:7;3596:6;3585:9;3581:22;3564:49;:::i;:::-;3554:59;;;3157:462;;;;;:::o;3624:437::-;3703:1;3699:12;;;;3746;;;3767:61;;3821:4;3813:6;3809:17;3799:27;;3767:61;3874:2;3866:6;3863:14;3843:18;3840:38;3837:218;;3911:77;3908:1;3901:88;4012:4;4009:1;4002:15;4040:4;4037:1;4030:15;3837:218;;3624:437;;;:::o;4066:184::-;4118:77;4115:1;4108:88;4215:4;4212:1;4205:15;4239:4;4236:1;4229:15;4255:393;4358:4;4416:11;4403:25;4506:66;4495:8;4479:14;4475:29;4471:102;4451:18;4447:127;4437:155;;4588:1;4585;4578:12;4437:155;4609:33;;;;;4255:393;-1:-1:-1;;4255:393:350:o;4653:754::-;4775:9;4834:4;4826:5;4810:14;4806:26;4802:37;4799:57;;;4852:1;4849;4842:12;4799:57;4885:2;4879:9;4927:4;4919:6;4915:17;4951:18;5019:6;5007:10;5004:22;4999:2;4987:10;4984:18;4981:46;4978:72;;;5030:18;;:::i;:::-;5070:10;5066:2;5059:22;5105:25;5124:5;5105:25;:::i;:::-;5097:6;5090:41;5188:2;5181:5;5177:14;5164:28;5159:2;5151:6;5147:15;5140:53;5240:2;5233:5;5229:14;5216:28;5202:42;;5267:2;5259:6;5256:14;5253:34;;;5283:1;5280;5273:12;5253:34;;5320:52;5357:14;5348:6;5341:5;5337:18;5320:52;:::i;:::-;5315:2;5303:15;;5296:77;-1:-1:-1;5307:6:350;4653:754;-1:-1:-1;;4653:754:350:o;5537:544::-;5638:2;5633:3;5630:11;5627:448;;;5674:1;5699:5;5695:2;5688:17;5744:4;5740:2;5730:19;5814:2;5802:10;5798:19;5795:1;5791:27;5785:4;5781:38;5850:4;5838:10;5835:20;5832:47;;;-1:-1:-1;5873:4:350;5832:47;5928:2;5923:3;5919:12;5916:1;5912:20;5906:4;5902:31;5892:41;;5983:82;6001:2;5994:5;5991:13;5983:82;;;6046:17;;;6027:1;6016:13;5983:82;;;5987:3;;;5627:448;5537:544;;;:::o;6317:1467::-;6441:3;6435:10;6468:18;6460:6;6457:30;6454:56;;;6490:18;;:::i;:::-;6519:96;6608:6;6568:38;6600:4;6594:11;6568:38;:::i;:::-;6562:4;6519:96;:::i;:::-;6670:4;;6734:2;6723:14;;6751:1;6746:781;;;;7571:1;7588:6;7585:89;;;-1:-1:-1;7640:19:350;;;7634:26;7585:89;6223:66;6214:1;6210:11;;;6206:84;6202:89;6192:100;6298:1;6294:11;;;6189:117;7687:81;;6716:1062;;6746:781;5484:1;5477:14;;;5521:4;5508:18;;6794:66;6782:79;;;6958:236;6972:7;6969:1;6966:14;6958:236;;;7061:19;;;7055:26;7040:42;;7153:27;;;;7121:1;7109:14;;;;6988:19;;6958:236;;;6962:3;7222:6;7213:7;7210:19;7207:261;;;7283:19;;;7277:26;7384:66;7366:1;7362:14;;;7378:3;7358:24;7354:97;7350:102;7335:118;7320:134;;7207:261;-1:-1:-1;;;;;7514:1:350;7498:14;;;7494:22;7481:36;;-1:-1:-1;6317:1467:350:o","linkReferences":{}},"methodIdentifiers":{"attest((address,bytes32,bytes)[])":"5eb5ea10","attest(address,bytes32,bytes)":"702b9dee","attestations(address,address,bytes32)":"29b42cb5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"AttestationCreated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationStation.AttestationData[]\",\"name\":\"_attestations\",\"type\":\"tuple[]\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_val\",\"type\":\"bytes\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"params\":{\"about\":\"Address attestation is about.\",\"creator\":\"Address that made the attestation.\",\"key\":\"Key of the attestation.\",\"val\":\"Value of the attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"params\":{\"_attestations\":\"An array of AttestationData structs.\"}},\"attest(address,bytes32,bytes)\":{\"params\":{\"_about\":\"Address that the attestation is about.\",\"_key\":\"A key used to namespace the attestation.\",\"_val\":\"An arbitrary value stored as part of the attestation.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"AttestationStation\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"notice\":\"Emitted when Attestation is created.\"}},\"kind\":\"user\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"notice\":\"Allows anyone to create attestations.\"},\"attest(address,bytes32,bytes)\":{\"notice\":\"Allows anyone to create an attestation.\"},\"attestations(address,address,bytes32)\":{\"notice\":\"Maps addresses to attestations. Creator => About => Key => Value.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"Where attestations live.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/AttestationStation.sol\":\"AttestationStation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"address","name":"about","type":"address","indexed":true},{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"AttestationCreated","anonymous":false},{"inputs":[{"internalType":"struct AttestationStation.AttestationData[]","name":"_attestations","type":"tuple[]","components":[{"internalType":"address","name":"about","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes","name":"val","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"_about","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_val","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/AttestationStation.sol":"AttestationStation"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":104047,"contract":"src/periphery/op-nft/AttestationStation.sol:AttestationStation","label":"attestations","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(bytes32 => bytes)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))"},"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bytes))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bytes_storage)"},"t_mapping(t_bytes32,t_bytes_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"}}},"userdoc":{"version":1,"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"notice":"Emitted when Attestation is created."}},"notice":"Where attestations live."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"params":{"about":"Address attestation is about.","creator":"Address that made the attestation.","key":"Key of the attestation.","val":"Value of the attestation."}}},"title":"AttestationStation"},"id":213}
{"abi":[{"type":"function","name":"attest","inputs":[{"name":"_attestations","type":"tuple[]","internalType":"struct AttestationStation.AttestationData[]","components":[{"name":"about","type":"address","internalType":"address"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"val","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"_about","type":"address","internalType":"address"},{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_val","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"about","type":"address","indexed":true,"internalType":"address"},{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:229:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:229:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;720:85;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:40;;;;;;;;;;;;;;;;;;;;;1875:375;;;;;;:::i;:::-;;:::i;:::-;;1549:200;;;;;;:::i;:::-;;:::i;720:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1875:375::-;1969:13;1952:14;1999:245;2023:6;2019:1;:10;1999:245;;;2046:34;2083:13;;2097:1;2083:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2046:53;;;:::i;:::-;;;2114:59;2121:11;:17;;;2140:11;:15;;;2157:11;:15;;;2114:6;:59::i;:::-;-1:-1:-1;2216:3:229;;1999:245;;;;1942:308;1875:375;;:::o;1549:200::-;1644:10;1631:12;:24;;;;;;;;;;;;:32;;;;;;;;;:38;;;;;;;;:45;1672:4;1631:38;:45;:::i;:::-;;1731:4;1723:6;1692:50;;1711:10;1692:50;;;1737:4;1692:50;;;;;;:::i;:::-;;;;;;;;1549:200;;;:::o;14:196:382:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;548:530::-;589:3;627:5;621:12;654:6;649:3;642:19;679:1;689:162;703:6;700:1;697:13;689:162;;;765:4;821:13;;;817:22;;811:29;793:11;;;789:20;;782:59;718:12;689:162;;;869:6;866:1;863:13;860:87;;;935:1;928:4;919:6;914:3;910:16;906:27;899:38;860:87;-1:-1:-1;992:2:382;980:15;997:66;976:88;967:98;;;;1067:4;963:109;;548:530;-1:-1:-1;;548:530:382:o;1083:217::-;1230:2;1219:9;1212:21;1193:4;1250:44;1290:2;1279:9;1275:18;1267:6;1250:44;:::i;:::-;1242:52;1083:217;-1:-1:-1;;;1083:217:382:o;1529:652::-;1652:6;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;1769:9;1756:23;1798:18;1839:2;1831:6;1828:14;1825:34;;;1855:1;1852;1845:12;1825:34;1893:6;1882:9;1878:22;1868:32;;1938:7;1931:4;1927:2;1923:13;1919:27;1909:55;;1960:1;1957;1950:12;1909:55;2000:2;1987:16;2026:2;2018:6;2015:14;2012:34;;;2042:1;2039;2032:12;2012:34;2095:7;2090:2;2080:6;2077:1;2073:14;2069:2;2065:23;2061:32;2058:45;2055:65;;;2116:1;2113;2106:12;2055:65;2147:2;2139:11;;;;;2169:6;;-1:-1:-1;1529:652:382;;-1:-1:-1;;;;1529:652:382:o;2186:184::-;2238:77;2235:1;2228:88;2335:4;2332:1;2325:15;2359:4;2356:1;2349:15;2375:777;2417:5;2470:3;2463:4;2455:6;2451:17;2447:27;2437:55;;2488:1;2485;2478:12;2437:55;2524:6;2511:20;2550:18;2587:2;2583;2580:10;2577:36;;;2593:18;;:::i;:::-;2727:2;2721:9;2789:4;2781:13;;2632:66;2777:22;;;2801:2;2773:31;2769:40;2757:53;;;2825:18;;;2845:22;;;2822:46;2819:72;;;2871:18;;:::i;:::-;2911:10;2907:2;2900:22;2946:2;2938:6;2931:18;2992:3;2985:4;2980:2;2972:6;2968:15;2964:26;2961:35;2958:55;;;3009:1;3006;2999:12;2958:55;3073:2;3066:4;3058:6;3054:17;3047:4;3039:6;3035:17;3022:54;3120:1;3113:4;3108:2;3100:6;3096:15;3092:26;3085:37;3140:6;3131:15;;;;;;2375:777;;;;:::o;3157:462::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3351:29;3370:9;3351:29;:::i;:::-;3341:39;;3427:2;3416:9;3412:18;3399:32;3389:42;;3482:2;3471:9;3467:18;3454:32;3509:18;3501:6;3498:30;3495:50;;;3541:1;3538;3531:12;3495:50;3564:49;3605:7;3596:6;3585:9;3581:22;3564:49;:::i;:::-;3554:59;;;3157:462;;;;;:::o;3624:437::-;3703:1;3699:12;;;;3746;;;3767:61;;3821:4;3813:6;3809:17;3799:27;;3767:61;3874:2;3866:6;3863:14;3843:18;3840:38;3837:218;;3911:77;3908:1;3901:88;4012:4;4009:1;4002:15;4040:4;4037:1;4030:15;3837:218;;3624:437;;;:::o;4066:184::-;4118:77;4115:1;4108:88;4215:4;4212:1;4205:15;4239:4;4236:1;4229:15;4255:393;4358:4;4416:11;4403:25;4506:66;4495:8;4479:14;4475:29;4471:102;4451:18;4447:127;4437:155;;4588:1;4585;4578:12;4437:155;4609:33;;;;;4255:393;-1:-1:-1;;4255:393:382:o;4653:754::-;4775:9;4834:4;4826:5;4810:14;4806:26;4802:37;4799:57;;;4852:1;4849;4842:12;4799:57;4885:2;4879:9;4927:4;4919:6;4915:17;4951:18;5019:6;5007:10;5004:22;4999:2;4987:10;4984:18;4981:46;4978:72;;;5030:18;;:::i;:::-;5070:10;5066:2;5059:22;5105:25;5124:5;5105:25;:::i;:::-;5097:6;5090:41;5188:2;5181:5;5177:14;5164:28;5159:2;5151:6;5147:15;5140:53;5240:2;5233:5;5229:14;5216:28;5202:42;;5267:2;5259:6;5256:14;5253:34;;;5283:1;5280;5273:12;5253:34;;5320:52;5357:14;5348:6;5341:5;5337:18;5320:52;:::i;:::-;5315:2;5303:15;;5296:77;-1:-1:-1;5307:6:382;4653:754;-1:-1:-1;;4653:754:382:o;5537:544::-;5638:2;5633:3;5630:11;5627:448;;;5674:1;5699:5;5695:2;5688:17;5744:4;5740:2;5730:19;5814:2;5802:10;5798:19;5795:1;5791:27;5785:4;5781:38;5850:4;5838:10;5835:20;5832:47;;;-1:-1:-1;5873:4:382;5832:47;5928:2;5923:3;5919:12;5916:1;5912:20;5906:4;5902:31;5892:41;;5983:82;6001:2;5994:5;5991:13;5983:82;;;6046:17;;;6027:1;6016:13;5983:82;;;5987:3;;;5627:448;5537:544;;;:::o;6317:1467::-;6441:3;6435:10;6468:18;6460:6;6457:30;6454:56;;;6490:18;;:::i;:::-;6519:96;6608:6;6568:38;6600:4;6594:11;6568:38;:::i;:::-;6562:4;6519:96;:::i;:::-;6670:4;;6734:2;6723:14;;6751:1;6746:781;;;;7571:1;7588:6;7585:89;;;-1:-1:-1;7640:19:382;;;7634:26;7585:89;6223:66;6214:1;6210:11;;;6206:84;6202:89;6192:100;6298:1;6294:11;;;6189:117;7687:81;;6716:1062;;6746:781;5484:1;5477:14;;;5521:4;5508:18;;6794:66;6782:79;;;6958:236;6972:7;6969:1;6966:14;6958:236;;;7061:19;;;7055:26;7040:42;;7153:27;;;;7121:1;7109:14;;;;6988:19;;6958:236;;;6962:3;7222:6;7213:7;7210:19;7207:261;;;7283:19;;;7277:26;7384:66;7366:1;7362:14;;;7378:3;7358:24;7354:97;7350:102;7335:118;7320:134;;7207:261;-1:-1:-1;;;;;7514:1:382;7498:14;;;7494:22;7481:36;;-1:-1:-1;6317:1467:382:o","linkReferences":{}},"methodIdentifiers":{"attest((address,bytes32,bytes)[])":"5eb5ea10","attest(address,bytes32,bytes)":"702b9dee","attestations(address,address,bytes32)":"29b42cb5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"AttestationCreated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationStation.AttestationData[]\",\"name\":\"_attestations\",\"type\":\"tuple[]\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_val\",\"type\":\"bytes\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"params\":{\"about\":\"Address attestation is about.\",\"creator\":\"Address that made the attestation.\",\"key\":\"Key of the attestation.\",\"val\":\"Value of the attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"params\":{\"_attestations\":\"An array of AttestationData structs.\"}},\"attest(address,bytes32,bytes)\":{\"params\":{\"_about\":\"Address that the attestation is about.\",\"_key\":\"A key used to namespace the attestation.\",\"_val\":\"An arbitrary value stored as part of the attestation.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"AttestationStation\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"notice\":\"Emitted when Attestation is created.\"}},\"kind\":\"user\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"notice\":\"Allows anyone to create attestations.\"},\"attest(address,bytes32,bytes)\":{\"notice\":\"Allows anyone to create an attestation.\"},\"attestations(address,address,bytes32)\":{\"notice\":\"Maps addresses to attestations. Creator => About => Key => Value.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"Where attestations live.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/AttestationStation.sol\":\"AttestationStation\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"address","name":"about","type":"address","indexed":true},{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"AttestationCreated","anonymous":false},{"inputs":[{"internalType":"struct AttestationStation.AttestationData[]","name":"_attestations","type":"tuple[]","components":[{"internalType":"address","name":"about","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes","name":"val","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"_about","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_val","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/AttestationStation.sol":"AttestationStation"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":111604,"contract":"src/periphery/op-nft/AttestationStation.sol:AttestationStation","label":"attestations","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(bytes32 => bytes)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))"},"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bytes))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bytes_storage)"},"t_mapping(t_bytes32,t_bytes_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"}}},"userdoc":{"version":1,"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"notice":"Emitted when Attestation is created."}},"notice":"Where attestations live."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"params":{"about":"Address attestation is about.","creator":"Address that made the attestation.","key":"Key of the attestation.","val":"Value of the attestation."}}},"title":"AttestationStation"},"ast":{"absolutePath":"src/periphery/op-nft/AttestationStation.sol","id":111694,"exportedSymbols":{"AttestationStation":[111693],"ISemver":[113621]},"nodeType":"SourceUnit","src":"32:2221:229","nodes":[{"id":111583,"nodeType":"PragmaDirective","src":"32:23:229","nodes":[],"literals":["solidity","0.8",".15"]},{"id":111585,"nodeType":"ImportDirective","src":"57:52:229","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":111694,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":111584,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111693,"nodeType":"ContractDefinition","src":"230:2022:229","nodes":[{"id":111595,"nodeType":"StructDefinition","src":"539:93:229","nodes":[],"canonicalName":"AttestationStation.AttestationData","members":[{"constant":false,"id":111590,"mutability":"mutable","name":"about","nameLocation":"580:5:229","nodeType":"VariableDeclaration","scope":111595,"src":"572:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111589,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111592,"mutability":"mutable","name":"key","nameLocation":"603:3:229","nodeType":"VariableDeclaration","scope":111595,"src":"595:11:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111594,"mutability":"mutable","name":"val","nameLocation":"622:3:229","nodeType":"VariableDeclaration","scope":111595,"src":"616:9:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":111593,"name":"bytes","nodeType":"ElementaryTypeName","src":"616:5:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"AttestationData","nameLocation":"546:15:229","scope":111693,"visibility":"public"},{"id":111604,"nodeType":"VariableDeclaration","src":"720:85:229","nodes":[],"constant":false,"documentation":{"id":111596,"nodeType":"StructuredDocumentation","src":"638:77:229","text":"@notice Maps addresses to attestations. Creator => About => Key => Value."},"functionSelector":"29b42cb5","mutability":"mutable","name":"attestations","nameLocation":"793:12:229","scope":111693,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"typeName":{"id":111603,"keyType":{"id":111597,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"720:65:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"valueType":{"id":111602,"keyType":{"id":111598,"name":"address","nodeType":"ElementaryTypeName","src":"747:7:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"739:45:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes))"},"valueType":{"id":111601,"keyType":{"id":111599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"766:7:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"758:25:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes)"},"valueType":{"id":111600,"name":"bytes","nodeType":"ElementaryTypeName","src":"777:5:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}}},"visibility":"public"},{"id":111615,"nodeType":"EventDefinition","src":"1072:105:229","nodes":[],"anonymous":false,"documentation":{"id":111605,"nodeType":"StructuredDocumentation","src":"812:255:229","text":"@notice Emitted when Attestation is created.\n @param creator Address that made the attestation.\n @param about Address attestation is about.\n @param key Key of the attestation.\n @param val Value of the attestation."},"eventSelector":"28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d85","name":"AttestationCreated","nameLocation":"1078:18:229","parameters":{"id":111614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111607,"indexed":true,"mutability":"mutable","name":"creator","nameLocation":"1113:7:229","nodeType":"VariableDeclaration","scope":111615,"src":"1097:23:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111606,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111609,"indexed":true,"mutability":"mutable","name":"about","nameLocation":"1138:5:229","nodeType":"VariableDeclaration","scope":111615,"src":"1122:21:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111608,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111611,"indexed":true,"mutability":"mutable","name":"key","nameLocation":"1161:3:229","nodeType":"VariableDeclaration","scope":111615,"src":"1145:19:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1145:7:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111613,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1172:3:229","nodeType":"VariableDeclaration","scope":111615,"src":"1166:9:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111612,"name":"bytes","nodeType":"ElementaryTypeName","src":"1166:5:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1096:80:229"}},{"id":111619,"nodeType":"VariableDeclaration","src":"1246:40:229","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":111616,"nodeType":"StructuredDocumentation","src":"1183:58:229","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1269:7:229","scope":111693,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":111617,"name":"string","nodeType":"ElementaryTypeName","src":"1246:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":111618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1279:7:229","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":111649,"nodeType":"FunctionDefinition","src":"1549:200:229","nodes":[],"body":{"id":111648,"nodeType":"Block","src":"1621:128:229","nodes":[],"statements":[{"expression":{"id":111638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":111629,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111604,"src":"1631:12:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes storage ref)))"}},"id":111634,"indexExpression":{"expression":{"id":111630,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1644:3:229","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":111631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1644:10:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:24:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes storage ref))"}},"id":111635,"indexExpression":{"id":111632,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111622,"src":"1656:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:32:229","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes storage ref)"}},"id":111636,"indexExpression":{"id":111633,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111624,"src":"1664:4:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1631:38:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":111637,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111626,"src":"1672:4:229","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1631:45:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":111639,"nodeType":"ExpressionStatement","src":"1631:45:229"},{"eventCall":{"arguments":[{"expression":{"id":111641,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1711:3:229","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":111642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1711:10:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":111643,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111622,"src":"1723:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":111644,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111624,"src":"1731:4:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":111645,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111626,"src":"1737:4:229","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":111640,"name":"AttestationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111615,"src":"1692:18:229","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes32,bytes memory)"}},"id":111646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1692:50:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111647,"nodeType":"EmitStatement","src":"1687:55:229"}]},"documentation":{"id":111620,"nodeType":"StructuredDocumentation","src":"1293:251:229","text":"@notice Allows anyone to create an attestation.\n @param _about Address that the attestation is about.\n @param _key A key used to namespace the attestation.\n @param _val An arbitrary value stored as part of the attestation."},"functionSelector":"702b9dee","implemented":true,"kind":"function","modifiers":[],"name":"attest","nameLocation":"1558:6:229","parameters":{"id":111627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111622,"mutability":"mutable","name":"_about","nameLocation":"1573:6:229","nodeType":"VariableDeclaration","scope":111649,"src":"1565:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111621,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111624,"mutability":"mutable","name":"_key","nameLocation":"1589:4:229","nodeType":"VariableDeclaration","scope":111649,"src":"1581:12:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1581:7:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111626,"mutability":"mutable","name":"_val","nameLocation":"1608:4:229","nodeType":"VariableDeclaration","scope":111649,"src":"1595:17:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111625,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:229","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1564:49:229"},"returnParameters":{"id":111628,"nodeType":"ParameterList","parameters":[],"src":"1621:0:229"},"scope":111693,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":111692,"nodeType":"FunctionDefinition","src":"1875:375:229","nodes":[],"body":{"id":111691,"nodeType":"Block","src":"1942:308:229","nodes":[],"statements":[{"assignments":[111658],"declarations":[{"constant":false,"id":111658,"mutability":"mutable","name":"length","nameLocation":"1960:6:229","nodeType":"VariableDeclaration","scope":111691,"src":"1952:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":111657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1952:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":111661,"initialValue":{"expression":{"id":111659,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111654,"src":"1969:13:229","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$111595_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":111660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1969:20:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1952:37:229"},{"body":{"id":111689,"nodeType":"Block","src":"2032:212:229","statements":[{"assignments":[111671],"declarations":[{"constant":false,"id":111671,"mutability":"mutable","name":"attestation","nameLocation":"2069:11:229","nodeType":"VariableDeclaration","scope":111689,"src":"2046:34:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_memory_ptr","typeString":"struct AttestationStation.AttestationData"},"typeName":{"id":111670,"nodeType":"UserDefinedTypeName","pathNode":{"id":111669,"name":"AttestationData","nodeType":"IdentifierPath","referencedDeclaration":111595,"src":"2046:15:229"},"referencedDeclaration":111595,"src":"2046:15:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_storage_ptr","typeString":"struct AttestationStation.AttestationData"}},"visibility":"internal"}],"id":111675,"initialValue":{"baseExpression":{"id":111672,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111654,"src":"2083:13:229","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$111595_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":111674,"indexExpression":{"id":111673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111663,"src":"2097:1:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2083:16:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata"}},"nodeType":"VariableDeclarationStatement","src":"2046:53:229"},{"expression":{"arguments":[{"expression":{"id":111677,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111671,"src":"2121:11:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":111678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"about","nodeType":"MemberAccess","referencedDeclaration":111590,"src":"2121:17:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":111679,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111671,"src":"2140:11:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":111680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"key","nodeType":"MemberAccess","referencedDeclaration":111592,"src":"2140:15:229","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":111681,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111671,"src":"2157:11:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":111682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"val","nodeType":"MemberAccess","referencedDeclaration":111594,"src":"2157:15:229","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":111676,"name":"attest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111649,"src":"2114:6:229","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory)"}},"id":111683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2114:59:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111684,"nodeType":"ExpressionStatement","src":"2114:59:229"},{"id":111688,"nodeType":"UncheckedBlock","src":"2188:46:229","statements":[{"expression":{"id":111686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2216:3:229","subExpression":{"id":111685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111663,"src":"2218:1:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":111687,"nodeType":"ExpressionStatement","src":"2216:3:229"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":111668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":111666,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111663,"src":"2019:1:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":111667,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111658,"src":"2023:6:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2019:10:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111690,"initializationExpression":{"assignments":[111663],"declarations":[{"constant":false,"id":111663,"mutability":"mutable","name":"i","nameLocation":"2012:1:229","nodeType":"VariableDeclaration","scope":111690,"src":"2004:9:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":111662,"name":"uint256","nodeType":"ElementaryTypeName","src":"2004:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":111665,"initialValue":{"hexValue":"30","id":111664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2016:1:229","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2004:13:229"},"nodeType":"ForStatement","src":"1999:245:229"}]},"documentation":{"id":111650,"nodeType":"StructuredDocumentation","src":"1755:115:229","text":"@notice Allows anyone to create attestations.\n @param _attestations An array of AttestationData structs."},"functionSelector":"5eb5ea10","implemented":true,"kind":"function","modifiers":[],"name":"attest","nameLocation":"1884:6:229","parameters":{"id":111655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111654,"mutability":"mutable","name":"_attestations","nameLocation":"1918:13:229","nodeType":"VariableDeclaration","scope":111692,"src":"1891:40:229","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$111595_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData[]"},"typeName":{"baseType":{"id":111652,"nodeType":"UserDefinedTypeName","pathNode":{"id":111651,"name":"AttestationData","nodeType":"IdentifierPath","referencedDeclaration":111595,"src":"1891:15:229"},"referencedDeclaration":111595,"src":"1891:15:229","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$111595_storage_ptr","typeString":"struct AttestationStation.AttestationData"}},"id":111653,"nodeType":"ArrayTypeName","src":"1891:17:229","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$111595_storage_$dyn_storage_ptr","typeString":"struct AttestationStation.AttestationData[]"}},"visibility":"internal"}],"src":"1890:42:229"},"returnParameters":{"id":111656,"nodeType":"ParameterList","parameters":[],"src":"1942:0:229"},"scope":111693,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":111587,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"261:7:229"},"id":111588,"nodeType":"InheritanceSpecifier","src":"261:7:229"}],"canonicalName":"AttestationStation","contractDependencies":[],"contractKind":"contract","documentation":{"id":111586,"nodeType":"StructuredDocumentation","src":"111:119:229","text":"@title AttestationStation\n @author Optimism Collective\n @author Gitcoin\n @notice Where attestations live."},"fullyImplemented":true,"linearizedBaseContracts":[111693,113621],"name":"AttestationStation","nameLocation":"239:18:229","scope":111694,"usedErrors":[]}],"license":"MIT"},"id":229}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7466_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7441_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7441_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7441_storage)"},"t_struct(FindData)7441_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7434,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7436,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7438,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7440,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7466_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7450,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))"},{"astId":7453,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7455,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7457,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7459,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7461,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7463,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7465,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7466],"TestBase":[65],"Vm":[15843],"VmSafe":[15256]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9426,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7466,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15844,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":15843,"src":"1564:2:0"},"referencedDeclaration":15843,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15843_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":7466,"src":"1610:10:0"},"referencedDeclaration":7466,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":15256,"src":"1737:6:0"},"referencedDeclaration":15256,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15256_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7427_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7402_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7402_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7402_storage)"},"t_struct(FindData)7402_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7395,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7397,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7399,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7401,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7427_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7411,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))"},{"astId":7414,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7416,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7418,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7420,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7422,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7424,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7426,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15818],"VmSafe":[15231]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15818,"src":"1564:2:0"},"referencedDeclaration":15818,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15818_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15231,"src":"1737:6:0"},"referencedDeclaration":15231,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15231_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7466_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7441_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7441_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7441_storage)"},"t_struct(FindData)7441_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7434,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7436,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7438,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7440,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7466_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7450,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))"},{"astId":7453,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7455,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7457,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7459,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7461,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7463,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7465,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7466],"TestBase":[65],"Vm":[15843],"VmSafe":[15256]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9426,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7466,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15844,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":15843,"src":"1564:2:0"},"referencedDeclaration":15843,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15843_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":7466,"src":"1610:10:0"},"referencedDeclaration":7466,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":15256,"src":"1737:6:0"},"referencedDeclaration":15256,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15256_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7427_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7402_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7402_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7402_storage)"},"t_struct(FindData)7402_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7395,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7397,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7399,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7401,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7427_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7411,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))"},{"astId":7414,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7416,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7418,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7420,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7422,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7424,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7426,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15818],"VmSafe":[15231]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15818,"src":"1564:2:0"},"referencedDeclaration":15818,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15818_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15231,"src":"1737:6:0"},"referencedDeclaration":15231,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15231_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7466_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7441_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7441_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7441_storage)"},"t_struct(FindData)7441_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7434,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7436,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7438,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7440,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7466_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7450,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))"},{"astId":7453,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7455,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7457,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7459,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7461,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7463,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7465,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7466],"TestBase":[65],"Vm":[15843],"VmSafe":[15256]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9426,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7466,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15844,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":15843,"src":"1564:2:0"},"referencedDeclaration":15843,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15843_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":7466,"src":"1610:10:0"},"referencedDeclaration":7466,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7466_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":15256,"src":"1737:6:0"},"referencedDeclaration":15256,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15256_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15256","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7427_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7402_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7402_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7402_storage)"},"t_struct(FindData)7402_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7395,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7397,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7399,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7401,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(StdStorage)7427_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7411,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))"},{"astId":7414,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7416,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7418,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7420,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7422,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7424,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7426,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15818],"VmSafe":[15231]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15818,"src":"1564:2:0"},"referencedDeclaration":15818,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15818_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15818","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15231,"src":"1737:6:0"},"referencedDeclaration":15231,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15231_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:136:-:0;;;798:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;945:10:136;957:20;979:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;798:208:136;;;359:649;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;359:649:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;471:40:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":439,"length":32},{"start":475,"length":32}],"105744":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"105748":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000019\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"BaseFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the BaseFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The BaseFeeVault accumulates the base fee that is paid by transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/BaseFeeVault.sol\":\"BaseFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/BaseFeeVault.sol\":{\"keccak256\":\"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2\",\"dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/BaseFeeVault.sol":"BaseFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/BaseFeeVault.sol":{"keccak256":"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f","urls":["bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2","dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/BaseFeeVault.sol:BaseFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The BaseFeeVault accumulates the base fee that is paid by transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"BaseFeeVault"},"id":136}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:145:-:0;;;798:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:236;;;;2461:44;;;;945:10:145;957:20;979:18;;2515:39:236;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;798:208:145;;;359:649;;14:518:382;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:382;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:382;-1:-1:-1;480:1:382;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;359:649:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:236;;;;;;;;;;;;;;;;;;190:42:382;178:55;;;160:74;;148:2;133:18;820:34:236;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;471:40:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:236:-;;;;;;;;;;;;;;;;;;;1152:25:382;;;1140:2;1125:18;1188:29:236;1006:177:382;927:53:236;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:382;2771:167:236;;;2099:21:382;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:236;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:236;;;2887:25:382;;;3053:9:236;2931:42:382;3009:15;3004:2;2989:18;;2982:43;3064:10:236;3041:18:382;;;3034:43;3035:40:236;;;;;;;2875:2:382;3035:40:236;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:382;3292:68:236;;;4006:21:382;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:236;3822:412:382;3292:68:236;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:236;;3391:156;;;;;1903:42:206;;3391:68:236;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:382:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:382;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:382:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:382:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:382;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"113335":[{"start":439,"length":32},{"start":475,"length":32}],"113338":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"113342":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000019\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"BaseFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the BaseFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The BaseFeeVault accumulates the base fee that is paid by transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/BaseFeeVault.sol\":\"BaseFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/BaseFeeVault.sol\":{\"keccak256\":\"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2\",\"dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92\",\"dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893\",\"dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc\",\"dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/BaseFeeVault.sol":"BaseFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/BaseFeeVault.sol":{"keccak256":"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f","urls":["bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2","dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525","urls":["bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92","dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f","urls":["bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893","dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e","urls":["bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc","dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":113349,"contract":"src/L2/BaseFeeVault.sol:BaseFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The BaseFeeVault accumulates the base fee that is paid by transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"BaseFeeVault"},"ast":{"absolutePath":"src/L2/BaseFeeVault.sol","id":91456,"exportedSymbols":{"BaseFeeVault":[91455],"FeeVault":[113482],"ISemver":[113621]},"nodeType":"SourceUnit","src":"32:977:145","nodes":[{"id":91424,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91426,"nodeType":"ImportDirective","src":"57:52:145","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91456,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":91425,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91428,"nodeType":"ImportDirective","src":"110:54:145","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":91456,"sourceUnit":113483,"symbolAliases":[{"foreign":{"id":91427,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113482,"src":"119:8:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91455,"nodeType":"ContractDefinition","src":"359:649:145","nodes":[{"id":91437,"nodeType":"VariableDeclaration","src":"471:40:145","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":91434,"nodeType":"StructuredDocumentation","src":"408:58:145","text":"@notice Semantic version.\n @custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"494:7:145","scope":91455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91435,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:145","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":91436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"504:7:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":91454,"nodeType":"FunctionDefinition","src":"798:208:145","nodes":[],"body":{"id":91453,"nodeType":"Block","src":"1003:3:145","nodes":[],"statements":[]},"documentation":{"id":91438,"nodeType":"StructuredDocumentation","src":"518:275:145","text":"@notice Constructs the BaseFeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":91448,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91440,"src":"945:10:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91449,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91442,"src":"957:20:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91450,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91445,"src":"979:18:145","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":91451,"kind":"baseConstructorSpecifier","modifierName":{"id":91447,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"936:8:145"},"nodeType":"ModifierInvocation","src":"936:62:145"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91440,"mutability":"mutable","name":"_recipient","nameLocation":"827:10:145","nodeType":"VariableDeclaration","scope":91454,"src":"819:18:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91439,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91442,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"855:20:145","nodeType":"VariableDeclaration","scope":91454,"src":"847:28:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91441,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91445,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"903:18:145","nodeType":"VariableDeclaration","scope":91454,"src":"885:36:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":91444,"nodeType":"UserDefinedTypeName","pathNode":{"id":91443,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":113332,"src":"885:17:145"},"referencedDeclaration":113332,"src":"885:17:145","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"809:118:145"},"returnParameters":{"id":91452,"nodeType":"ParameterList","parameters":[],"src":"1003:0:145"},"scope":91455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91430,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"384:8:145"},"id":91431,"nodeType":"InheritanceSpecifier","src":"384:8:145"},{"baseName":{"id":91432,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"394:7:145"},"id":91433,"nodeType":"InheritanceSpecifier","src":"394:7:145"}],"canonicalName":"BaseFeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":91429,"nodeType":"StructuredDocumentation","src":"166:193:145","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000019\n @title BaseFeeVault\n @notice The BaseFeeVault accumulates the base fee that is paid by transactions."},"fullyImplemented":true,"linearizedBaseContracts":[91455,113621,113482],"name":"BaseFeeVault","nameLocation":"368:12:145","scope":91456,"usedErrors":[]}],"license":"MIT"},"id":145}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:185:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:487:185;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:185:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burn\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utilities for burning stuff.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burn\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burn"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utilities for burning stuff."},"devdoc":{"version":1,"kind":"dev","title":"Burn"},"id":185}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:197:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:487:197;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:197:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burn\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utilities for burning stuff.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burn\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burn"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utilities for burning stuff."},"devdoc":{"version":1,"kind":"dev","title":"Burn"},"ast":{"absolutePath":"src/libraries/Burn.sol","id":106079,"exportedSymbols":{"Burn":[106062],"Burner":[106078]},"nodeType":"SourceUnit","src":"32:932:197","nodes":[{"id":106019,"nodeType":"PragmaDirective","src":"32:23:197","nodes":[],"literals":["solidity","0.8",".15"]},{"id":106062,"nodeType":"ContractDefinition","src":"114:487:197","nodes":[{"id":106034,"nodeType":"FunctionDefinition","src":"224:86:197","nodes":[],"body":{"id":106033,"nodeType":"Block","src":"263:47:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"id":106028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"273:10:197","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$106078_$","typeString":"function () payable returns (contract Burner)"},"typeName":{"id":106027,"nodeType":"UserDefinedTypeName","pathNode":{"id":106026,"name":"Burner","nodeType":"IdentifierPath","referencedDeclaration":106078,"src":"277:6:197"},"referencedDeclaration":106078,"src":"277:6:197","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}}},"id":106030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":106029,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106023,"src":"292:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"273:28:197","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$106078_$value","typeString":"function () payable returns (contract Burner)"}},"id":106031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"273:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}},"id":106032,"nodeType":"ExpressionStatement","src":"273:30:197"}]},"documentation":{"id":106021,"nodeType":"StructuredDocumentation","src":"133:86:197","text":"@notice Burns a given amount of ETH.\n @param _amount Amount of ETH to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"eth","nameLocation":"233:3:197","parameters":{"id":106024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106023,"mutability":"mutable","name":"_amount","nameLocation":"245:7:197","nodeType":"VariableDeclaration","scope":106034,"src":"237:15:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106022,"name":"uint256","nodeType":"ElementaryTypeName","src":"237:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"236:17:197"},"returnParameters":{"id":106025,"nodeType":"ParameterList","parameters":[],"src":"263:0:197"},"scope":106062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":106061,"nodeType":"FunctionDefinition","src":"407:192:197","nodes":[],"body":{"id":106060,"nodeType":"Block","src":"451:148:197","nodes":[],"statements":[{"assignments":[106041],"declarations":[{"constant":false,"id":106041,"mutability":"mutable","name":"i","nameLocation":"469:1:197","nodeType":"VariableDeclaration","scope":106060,"src":"461:9:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106040,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":106043,"initialValue":{"hexValue":"30","id":106042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"473:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"461:13:197"},{"assignments":[106045],"declarations":[{"constant":false,"id":106045,"mutability":"mutable","name":"initialGas","nameLocation":"492:10:197","nodeType":"VariableDeclaration","scope":106060,"src":"484:18:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106044,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":106048,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":106046,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"505:7:197","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":106047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:9:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"484:30:197"},{"body":{"id":106058,"nodeType":"Block","src":"565:28:197","statements":[{"expression":{"id":106056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"579:3:197","subExpression":{"id":106055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106041,"src":"581:1:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":106057,"nodeType":"ExpressionStatement","src":"579:3:197"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":106054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":106052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106049,"name":"initialGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106045,"src":"531:10:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":106050,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"544:7:197","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":106051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"544:9:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:22:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":106053,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106037,"src":"556:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:32:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":106059,"nodeType":"WhileStatement","src":"524:69:197"}]},"documentation":{"id":106035,"nodeType":"StructuredDocumentation","src":"316:86:197","text":"@notice Burns a given amount of gas.\n @param _amount Amount of gas to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"gas","nameLocation":"416:3:197","parameters":{"id":106038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106037,"mutability":"mutable","name":"_amount","nameLocation":"428:7:197","nodeType":"VariableDeclaration","scope":106061,"src":"420:15:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106036,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"419:17:197"},"returnParameters":{"id":106039,"nodeType":"ParameterList","parameters":[],"src":"451:0:197"},"scope":106062,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Burn","contractDependencies":[],"contractKind":"library","documentation":{"id":106020,"nodeType":"StructuredDocumentation","src":"57:57:197","text":"@title Burn\n @notice Utilities for burning stuff."},"fullyImplemented":true,"linearizedBaseContracts":[106062],"name":"Burn","nameLocation":"122:4:197","scope":106079,"usedErrors":[]},{"id":106078,"nodeType":"ContractDefinition","src":"864:99:197","nodes":[{"id":106077,"nodeType":"FunctionDefinition","src":"886:75:197","nodes":[],"body":{"id":106076,"nodeType":"Block","src":"908:53:197","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":106071,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"947:4:197","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}],"id":106070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"939:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":106069,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:197","typeDescriptions":{}}},"id":106072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"939:13:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":106068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"931:8:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":106067,"name":"address","nodeType":"ElementaryTypeName","src":"931:8:197","stateMutability":"payable","typeDescriptions":{}}},"id":106073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"931:22:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":106066,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"918:12:197","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":106074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"918:36:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":106075,"nodeType":"ExpressionStatement","src":"918:36:197"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":106064,"nodeType":"ParameterList","parameters":[],"src":"897:2:197"},"returnParameters":{"id":106065,"nodeType":"ParameterList","parameters":[],"src":"908:0:197"},"scope":106078,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Burner","contractDependencies":[],"contractKind":"contract","documentation":{"id":106063,"nodeType":"StructuredDocumentation","src":"603:261:197","text":"@title Burner\n @notice Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to\n the contract from the circulating supply. Self-destructing is the only way to remove ETH\n from the circulating supply."},"fullyImplemented":true,"linearizedBaseContracts":[106078],"name":"Burner","nameLocation":"873:6:197","scope":106079,"usedErrors":[]}],"license":"MIT"},"id":197}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405230fffe","sourceMap":"864:99:185:-:0;;;947:4;918:36","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"864:99:185:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burner\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burner"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply."},"devdoc":{"version":1,"kind":"dev","title":"Burner"},"id":185}
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405230fffe","sourceMap":"864:99:197:-:0;;;947:4;918:36","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"864:99:197:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burner\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burner\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burner"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply."},"devdoc":{"version":1,"kind":"dev","title":"Burner"},"ast":{"absolutePath":"src/libraries/Burn.sol","id":106079,"exportedSymbols":{"Burn":[106062],"Burner":[106078]},"nodeType":"SourceUnit","src":"32:932:197","nodes":[{"id":106019,"nodeType":"PragmaDirective","src":"32:23:197","nodes":[],"literals":["solidity","0.8",".15"]},{"id":106062,"nodeType":"ContractDefinition","src":"114:487:197","nodes":[{"id":106034,"nodeType":"FunctionDefinition","src":"224:86:197","nodes":[],"body":{"id":106033,"nodeType":"Block","src":"263:47:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"id":106028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"273:10:197","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$106078_$","typeString":"function () payable returns (contract Burner)"},"typeName":{"id":106027,"nodeType":"UserDefinedTypeName","pathNode":{"id":106026,"name":"Burner","nodeType":"IdentifierPath","referencedDeclaration":106078,"src":"277:6:197"},"referencedDeclaration":106078,"src":"277:6:197","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}}},"id":106030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":106029,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106023,"src":"292:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"273:28:197","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$106078_$value","typeString":"function () payable returns (contract Burner)"}},"id":106031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"273:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}},"id":106032,"nodeType":"ExpressionStatement","src":"273:30:197"}]},"documentation":{"id":106021,"nodeType":"StructuredDocumentation","src":"133:86:197","text":"@notice Burns a given amount of ETH.\n @param _amount Amount of ETH to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"eth","nameLocation":"233:3:197","parameters":{"id":106024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106023,"mutability":"mutable","name":"_amount","nameLocation":"245:7:197","nodeType":"VariableDeclaration","scope":106034,"src":"237:15:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106022,"name":"uint256","nodeType":"ElementaryTypeName","src":"237:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"236:17:197"},"returnParameters":{"id":106025,"nodeType":"ParameterList","parameters":[],"src":"263:0:197"},"scope":106062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":106061,"nodeType":"FunctionDefinition","src":"407:192:197","nodes":[],"body":{"id":106060,"nodeType":"Block","src":"451:148:197","nodes":[],"statements":[{"assignments":[106041],"declarations":[{"constant":false,"id":106041,"mutability":"mutable","name":"i","nameLocation":"469:1:197","nodeType":"VariableDeclaration","scope":106060,"src":"461:9:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106040,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":106043,"initialValue":{"hexValue":"30","id":106042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"473:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"461:13:197"},{"assignments":[106045],"declarations":[{"constant":false,"id":106045,"mutability":"mutable","name":"initialGas","nameLocation":"492:10:197","nodeType":"VariableDeclaration","scope":106060,"src":"484:18:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106044,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":106048,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":106046,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"505:7:197","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":106047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:9:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"484:30:197"},{"body":{"id":106058,"nodeType":"Block","src":"565:28:197","statements":[{"expression":{"id":106056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"579:3:197","subExpression":{"id":106055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106041,"src":"581:1:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":106057,"nodeType":"ExpressionStatement","src":"579:3:197"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":106054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":106052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106049,"name":"initialGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106045,"src":"531:10:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":106050,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"544:7:197","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":106051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"544:9:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:22:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":106053,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106037,"src":"556:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:32:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":106059,"nodeType":"WhileStatement","src":"524:69:197"}]},"documentation":{"id":106035,"nodeType":"StructuredDocumentation","src":"316:86:197","text":"@notice Burns a given amount of gas.\n @param _amount Amount of gas to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"gas","nameLocation":"416:3:197","parameters":{"id":106038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106037,"mutability":"mutable","name":"_amount","nameLocation":"428:7:197","nodeType":"VariableDeclaration","scope":106061,"src":"420:15:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106036,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"419:17:197"},"returnParameters":{"id":106039,"nodeType":"ParameterList","parameters":[],"src":"451:0:197"},"scope":106062,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Burn","contractDependencies":[],"contractKind":"library","documentation":{"id":106020,"nodeType":"StructuredDocumentation","src":"57:57:197","text":"@title Burn\n @notice Utilities for burning stuff."},"fullyImplemented":true,"linearizedBaseContracts":[106062],"name":"Burn","nameLocation":"122:4:197","scope":106079,"usedErrors":[]},{"id":106078,"nodeType":"ContractDefinition","src":"864:99:197","nodes":[{"id":106077,"nodeType":"FunctionDefinition","src":"886:75:197","nodes":[],"body":{"id":106076,"nodeType":"Block","src":"908:53:197","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":106071,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"947:4:197","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Burner_$106078","typeString":"contract Burner"}],"id":106070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"939:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":106069,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:197","typeDescriptions":{}}},"id":106072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"939:13:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":106068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"931:8:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":106067,"name":"address","nodeType":"ElementaryTypeName","src":"931:8:197","stateMutability":"payable","typeDescriptions":{}}},"id":106073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"931:22:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":106066,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"918:12:197","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":106074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"918:36:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":106075,"nodeType":"ExpressionStatement","src":"918:36:197"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":106064,"nodeType":"ParameterList","parameters":[],"src":"897:2:197"},"returnParameters":{"id":106065,"nodeType":"ParameterList","parameters":[],"src":"908:0:197"},"scope":106078,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Burner","contractDependencies":[],"contractKind":"contract","documentation":{"id":106063,"nodeType":"StructuredDocumentation","src":"603:261:197","text":"@title Burner\n @notice Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to\n the contract from the circulating supply. Self-destructing is the only way to remove ETH\n from the circulating supply."},"fullyImplemented":true,"linearizedBaseContracts":[106078],"name":"Burner","nameLocation":"873:6:197","scope":106079,"usedErrors":[]}],"license":"MIT"},"id":197}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:101:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;235:311:101;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:101:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting between addresses and bytes32 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":\"Bytes32AddressLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8\",\"dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/utils/Bytes32AddressLib.sol":"Bytes32AddressLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/utils/Bytes32AddressLib.sol":{"keccak256":"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f","urls":["bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8","dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for converting between addresses and bytes32 values."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"id":101}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:107:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;235:311:107;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:107:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting between addresses and bytes32 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":\"Bytes32AddressLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8\",\"dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/utils/Bytes32AddressLib.sol":"Bytes32AddressLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/utils/Bytes32AddressLib.sol":{"keccak256":"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f","urls":["bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8","dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for converting between addresses and bytes32 values."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"ast":{"absolutePath":"lib/solmate/src/utils/Bytes32AddressLib.sol","id":65325,"exportedSymbols":{"Bytes32AddressLib":[65324]},"nodeType":"SourceUnit","src":"32:515:107","nodes":[{"id":65287,"nodeType":"PragmaDirective","src":"32:24:107","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":65324,"nodeType":"ContractDefinition","src":"235:311:107","nodes":[{"id":65307,"nodeType":"FunctionDefinition","src":"267:138:107","nodes":[],"body":{"id":65306,"nodeType":"Block","src":"344:61:107","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":65301,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65290,"src":"385:10:107","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":65300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"377:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":65299,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:107","typeDescriptions":{}}},"id":65302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"377:19:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"369:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":65297,"name":"uint160","nodeType":"ElementaryTypeName","src":"369:7:107","typeDescriptions":{}}},"id":65303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"369:28:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":65296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"361:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65295,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:107","typeDescriptions":{}}},"id":65304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"361:37:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":65294,"id":65305,"nodeType":"Return","src":"354:44:107"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromLast20Bytes","nameLocation":"276:15:107","parameters":{"id":65291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65290,"mutability":"mutable","name":"bytesValue","nameLocation":"300:10:107","nodeType":"VariableDeclaration","scope":65307,"src":"292:18:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":65289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292:7:107","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"291:20:107"},"returnParameters":{"id":65294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65307,"src":"335:7:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65292,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:107","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"334:9:107"},"scope":65324,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":65323,"nodeType":"FunctionDefinition","src":"411:133:107","nodes":[],"body":{"id":65322,"nodeType":"Block","src":"490:54:107","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":65318,"name":"addressValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65309,"src":"523:12:107","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"515:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":65316,"name":"bytes20","nodeType":"ElementaryTypeName","src":"515:7:107","typeDescriptions":{}}},"id":65319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"515:21:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":65315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"507:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":65314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"507:7:107","typeDescriptions":{}}},"id":65320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"507:30:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":65313,"id":65321,"nodeType":"Return","src":"500:37:107"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fillLast12Bytes","nameLocation":"420:15:107","parameters":{"id":65310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65309,"mutability":"mutable","name":"addressValue","nameLocation":"444:12:107","nodeType":"VariableDeclaration","scope":65323,"src":"436:20:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65308,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:107","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"435:22:107"},"returnParameters":{"id":65313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65323,"src":"481:7:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":65311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:107","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"480:9:107"},"scope":65324,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Bytes32AddressLib","contractDependencies":[],"contractKind":"library","documentation":{"id":65288,"nodeType":"StructuredDocumentation","src":"58:177:107","text":"@notice Library for converting between addresses and bytes32 values.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[65324],"name":"Bytes32AddressLib","nameLocation":"243:17:107","scope":65325,"usedErrors":[]}],"license":"MIT"},"id":107}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:156:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1268:2603:156;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:156:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"LPP metadata UDT extension functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/libraries/CannonTypes.sol\":\"LPPMetadataLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/libraries/CannonTypes.sol":"LPPMetadataLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"LPP metadata UDT extension functions."},"devdoc":{"version":1,"kind":"dev"},"id":156}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:168:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1268:2603:168;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:168:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"LPP metadata UDT extension functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/libraries/CannonTypes.sol\":\"LPPMetadataLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/libraries/CannonTypes.sol":"LPPMetadataLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"LPP metadata UDT extension functions."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/cannon/libraries/CannonTypes.sol","id":99542,"exportedSymbols":{"LPPMetaData":[99395],"LPPMetadataLib":[99541]},"nodeType":"SourceUnit","src":"32:3840:168","nodes":[{"id":99389,"nodeType":"PragmaDirective","src":"32:23:168","nodes":[],"literals":["solidity","0.8",".15"]},{"id":99393,"nodeType":"UsingForDirective","src":"57:44:168","nodes":[],"global":true,"libraryName":{"id":99390,"name":"LPPMetadataLib","nodeType":"IdentifierPath","referencedDeclaration":99541,"src":"63:14:168"},"typeName":{"id":99392,"nodeType":"UserDefinedTypeName","pathNode":{"id":99391,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"82:11:168"},"referencedDeclaration":99395,"src":"82:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}}},{"id":99395,"nodeType":"UserDefinedValueTypeDefinition","src":"1188:28:168","nodes":[],"canonicalName":"LPPMetaData","name":"LPPMetaData","nameLocation":"1193:11:168","underlyingType":{"id":99394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1208:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":99541,"nodeType":"ContractDefinition","src":"1268:2603:168","nodes":[{"id":99399,"nodeType":"VariableDeclaration","src":"1297:54:168","nodes":[],"constant":true,"mutability":"constant","name":"U64_MASK","nameLocation":"1322:8:168","scope":99541,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99397,"name":"uint256","nodeType":"ElementaryTypeName","src":"1297:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646","id":99398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:18:168","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"visibility":"private"},{"id":99402,"nodeType":"VariableDeclaration","src":"1357:46:168","nodes":[],"constant":true,"mutability":"constant","name":"U32_MASK","nameLocation":"1382:8:168","scope":99541,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99400,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30784646464646464646","id":99401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1393:10:168","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"visibility":"private"},{"id":99415,"nodeType":"FunctionDefinition","src":"1410:221:168","nodes":[],"body":{"id":99414,"nodeType":"Block","src":"1512:119:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1531:94:168","statements":[{"nodeType":"YulAssignment","src":"1545:70:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1561:3:168","type":"","value":"192"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1566:10:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1557:3:168"},"nodeType":"YulFunctionCall","src":"1557:20:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"1583:5:168"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1598:3:168","type":"","value":"192"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"1603:8:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1594:3:168"},"nodeType":"YulFunctionCall","src":"1594:18:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1590:3:168"},"nodeType":"YulFunctionCall","src":"1590:23:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1579:3:168"},"nodeType":"YulFunctionCall","src":"1579:35:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1554:2:168"},"nodeType":"YulFunctionCall","src":"1554:61:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"1545:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99399,"isOffset":false,"isSlot":false,"src":"1603:8:168","valueSize":1},{"declaration":99405,"isOffset":false,"isSlot":false,"src":"1583:5:168","valueSize":1},{"declaration":99407,"isOffset":false,"isSlot":false,"src":"1566:10:168","valueSize":1},{"declaration":99411,"isOffset":false,"isSlot":false,"src":"1545:5:168","valueSize":1}],"id":99413,"nodeType":"InlineAssembly","src":"1522:103:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setTimestamp","nameLocation":"1419:12:168","parameters":{"id":99408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99405,"mutability":"mutable","name":"_self","nameLocation":"1444:5:168","nodeType":"VariableDeclaration","scope":99415,"src":"1432:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99404,"nodeType":"UserDefinedTypeName","pathNode":{"id":99403,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1432:11:168"},"referencedDeclaration":99395,"src":"1432:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99407,"mutability":"mutable","name":"_timestamp","nameLocation":"1458:10:168","nodeType":"VariableDeclaration","scope":99415,"src":"1451:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":99406,"name":"uint64","nodeType":"ElementaryTypeName","src":"1451:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1431:38:168"},"returnParameters":{"id":99412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99411,"mutability":"mutable","name":"self_","nameLocation":"1505:5:168","nodeType":"VariableDeclaration","scope":99415,"src":"1493:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99410,"nodeType":"UserDefinedTypeName","pathNode":{"id":99409,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1493:11:168"},"referencedDeclaration":99395,"src":"1493:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1492:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99428,"nodeType":"FunctionDefinition","src":"1637:224:168","nodes":[],"body":{"id":99427,"nodeType":"Block","src":"1741:120:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1760:95:168","statements":[{"nodeType":"YulAssignment","src":"1774:71:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1790:3:168","type":"","value":"160"},{"name":"_partOffset","nodeType":"YulIdentifier","src":"1795:11:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1786:3:168"},"nodeType":"YulFunctionCall","src":"1786:21:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"1813:5:168"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1828:3:168","type":"","value":"160"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"1833:8:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1824:3:168"},"nodeType":"YulFunctionCall","src":"1824:18:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1820:3:168"},"nodeType":"YulFunctionCall","src":"1820:23:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1809:3:168"},"nodeType":"YulFunctionCall","src":"1809:35:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1783:2:168"},"nodeType":"YulFunctionCall","src":"1783:62:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"1774:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"1833:8:168","valueSize":1},{"declaration":99420,"isOffset":false,"isSlot":false,"src":"1795:11:168","valueSize":1},{"declaration":99418,"isOffset":false,"isSlot":false,"src":"1813:5:168","valueSize":1},{"declaration":99424,"isOffset":false,"isSlot":false,"src":"1774:5:168","valueSize":1}],"id":99426,"nodeType":"InlineAssembly","src":"1751:104:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setPartOffset","nameLocation":"1646:13:168","parameters":{"id":99421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99418,"mutability":"mutable","name":"_self","nameLocation":"1672:5:168","nodeType":"VariableDeclaration","scope":99428,"src":"1660:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99417,"nodeType":"UserDefinedTypeName","pathNode":{"id":99416,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1660:11:168"},"referencedDeclaration":99395,"src":"1660:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99420,"mutability":"mutable","name":"_partOffset","nameLocation":"1686:11:168","nodeType":"VariableDeclaration","scope":99428,"src":"1679:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99419,"name":"uint32","nodeType":"ElementaryTypeName","src":"1679:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1659:39:168"},"returnParameters":{"id":99425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99424,"mutability":"mutable","name":"self_","nameLocation":"1734:5:168","nodeType":"VariableDeclaration","scope":99428,"src":"1722:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99423,"nodeType":"UserDefinedTypeName","pathNode":{"id":99422,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1722:11:168"},"referencedDeclaration":99395,"src":"1722:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1721:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99441,"nodeType":"FunctionDefinition","src":"1867:227:168","nodes":[],"body":{"id":99440,"nodeType":"Block","src":"1973:121:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1992:96:168","statements":[{"nodeType":"YulAssignment","src":"2006:72:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2022:3:168","type":"","value":"128"},{"name":"_claimedSize","nodeType":"YulIdentifier","src":"2027:12:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2018:3:168"},"nodeType":"YulFunctionCall","src":"2018:22:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2046:5:168"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:3:168","type":"","value":"128"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2066:8:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2057:3:168"},"nodeType":"YulFunctionCall","src":"2057:18:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2053:3:168"},"nodeType":"YulFunctionCall","src":"2053:23:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2042:3:168"},"nodeType":"YulFunctionCall","src":"2042:35:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2015:2:168"},"nodeType":"YulFunctionCall","src":"2015:63:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2006:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"2066:8:168","valueSize":1},{"declaration":99433,"isOffset":false,"isSlot":false,"src":"2027:12:168","valueSize":1},{"declaration":99431,"isOffset":false,"isSlot":false,"src":"2046:5:168","valueSize":1},{"declaration":99437,"isOffset":false,"isSlot":false,"src":"2006:5:168","valueSize":1}],"id":99439,"nodeType":"InlineAssembly","src":"1983:105:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setClaimedSize","nameLocation":"1876:14:168","parameters":{"id":99434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99431,"mutability":"mutable","name":"_self","nameLocation":"1903:5:168","nodeType":"VariableDeclaration","scope":99441,"src":"1891:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99430,"nodeType":"UserDefinedTypeName","pathNode":{"id":99429,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1891:11:168"},"referencedDeclaration":99395,"src":"1891:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99433,"mutability":"mutable","name":"_claimedSize","nameLocation":"1917:12:168","nodeType":"VariableDeclaration","scope":99441,"src":"1910:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99432,"name":"uint32","nodeType":"ElementaryTypeName","src":"1910:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1890:40:168"},"returnParameters":{"id":99438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99437,"mutability":"mutable","name":"self_","nameLocation":"1966:5:168","nodeType":"VariableDeclaration","scope":99441,"src":"1954:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99436,"nodeType":"UserDefinedTypeName","pathNode":{"id":99435,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"1954:11:168"},"referencedDeclaration":99395,"src":"1954:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1953:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99454,"nodeType":"FunctionDefinition","src":"2100:237:168","nodes":[],"body":{"id":99453,"nodeType":"Block","src":"2214:123:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2233:98:168","statements":[{"nodeType":"YulAssignment","src":"2247:74:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2263:2:168","type":"","value":"96"},{"name":"_blocksProcessed","nodeType":"YulIdentifier","src":"2267:16:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2259:3:168"},"nodeType":"YulFunctionCall","src":"2259:25:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2290:5:168"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2305:2:168","type":"","value":"96"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2309:8:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2301:3:168"},"nodeType":"YulFunctionCall","src":"2301:17:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2297:3:168"},"nodeType":"YulFunctionCall","src":"2297:22:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2286:3:168"},"nodeType":"YulFunctionCall","src":"2286:34:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2256:2:168"},"nodeType":"YulFunctionCall","src":"2256:65:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2247:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"2309:8:168","valueSize":1},{"declaration":99446,"isOffset":false,"isSlot":false,"src":"2267:16:168","valueSize":1},{"declaration":99444,"isOffset":false,"isSlot":false,"src":"2290:5:168","valueSize":1},{"declaration":99450,"isOffset":false,"isSlot":false,"src":"2247:5:168","valueSize":1}],"id":99452,"nodeType":"InlineAssembly","src":"2224:107:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setBlocksProcessed","nameLocation":"2109:18:168","parameters":{"id":99447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99444,"mutability":"mutable","name":"_self","nameLocation":"2140:5:168","nodeType":"VariableDeclaration","scope":99454,"src":"2128:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99443,"nodeType":"UserDefinedTypeName","pathNode":{"id":99442,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2128:11:168"},"referencedDeclaration":99395,"src":"2128:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99446,"mutability":"mutable","name":"_blocksProcessed","nameLocation":"2154:16:168","nodeType":"VariableDeclaration","scope":99454,"src":"2147:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99445,"name":"uint32","nodeType":"ElementaryTypeName","src":"2147:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2127:44:168"},"returnParameters":{"id":99451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99450,"mutability":"mutable","name":"self_","nameLocation":"2207:5:168","nodeType":"VariableDeclaration","scope":99454,"src":"2195:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99449,"nodeType":"UserDefinedTypeName","pathNode":{"id":99448,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2195:11:168"},"referencedDeclaration":99395,"src":"2195:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2194:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99467,"nodeType":"FunctionDefinition","src":"2343:234:168","nodes":[],"body":{"id":99466,"nodeType":"Block","src":"2455:122:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2474:97:168","statements":[{"nodeType":"YulAssignment","src":"2488:73:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2504:2:168","type":"","value":"64"},{"name":"_bytesProcessed","nodeType":"YulIdentifier","src":"2508:15:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2500:3:168"},"nodeType":"YulFunctionCall","src":"2500:24:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2530:5:168"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2545:2:168","type":"","value":"64"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2549:8:168"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2541:3:168"},"nodeType":"YulFunctionCall","src":"2541:17:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2537:3:168"},"nodeType":"YulFunctionCall","src":"2537:22:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2526:3:168"},"nodeType":"YulFunctionCall","src":"2526:34:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2497:2:168"},"nodeType":"YulFunctionCall","src":"2497:64:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2488:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"2549:8:168","valueSize":1},{"declaration":99459,"isOffset":false,"isSlot":false,"src":"2508:15:168","valueSize":1},{"declaration":99457,"isOffset":false,"isSlot":false,"src":"2530:5:168","valueSize":1},{"declaration":99463,"isOffset":false,"isSlot":false,"src":"2488:5:168","valueSize":1}],"id":99465,"nodeType":"InlineAssembly","src":"2465:106:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setBytesProcessed","nameLocation":"2352:17:168","parameters":{"id":99460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99457,"mutability":"mutable","name":"_self","nameLocation":"2382:5:168","nodeType":"VariableDeclaration","scope":99467,"src":"2370:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99456,"nodeType":"UserDefinedTypeName","pathNode":{"id":99455,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2370:11:168"},"referencedDeclaration":99395,"src":"2370:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99459,"mutability":"mutable","name":"_bytesProcessed","nameLocation":"2396:15:168","nodeType":"VariableDeclaration","scope":99467,"src":"2389:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99458,"name":"uint32","nodeType":"ElementaryTypeName","src":"2389:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2369:43:168"},"returnParameters":{"id":99464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99463,"mutability":"mutable","name":"self_","nameLocation":"2448:5:168","nodeType":"VariableDeclaration","scope":99467,"src":"2436:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99462,"nodeType":"UserDefinedTypeName","pathNode":{"id":99461,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2436:11:168"},"referencedDeclaration":99395,"src":"2436:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2435:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99480,"nodeType":"FunctionDefinition","src":"2583:199:168","nodes":[],"body":{"id":99479,"nodeType":"Block","src":"2683:99:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2702:74:168","statements":[{"nodeType":"YulAssignment","src":"2716:50:168","value":{"arguments":[{"name":"_countered","nodeType":"YulIdentifier","src":"2728:10:168"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2744:5:168"},{"arguments":[{"name":"U64_MASK","nodeType":"YulIdentifier","src":"2755:8:168"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2751:3:168"},"nodeType":"YulFunctionCall","src":"2751:13:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2740:3:168"},"nodeType":"YulFunctionCall","src":"2740:25:168"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2725:2:168"},"nodeType":"YulFunctionCall","src":"2725:41:168"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2716:5:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99399,"isOffset":false,"isSlot":false,"src":"2755:8:168","valueSize":1},{"declaration":99472,"isOffset":false,"isSlot":false,"src":"2728:10:168","valueSize":1},{"declaration":99470,"isOffset":false,"isSlot":false,"src":"2744:5:168","valueSize":1},{"declaration":99476,"isOffset":false,"isSlot":false,"src":"2716:5:168","valueSize":1}],"id":99478,"nodeType":"InlineAssembly","src":"2693:83:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setCountered","nameLocation":"2592:12:168","parameters":{"id":99473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99470,"mutability":"mutable","name":"_self","nameLocation":"2617:5:168","nodeType":"VariableDeclaration","scope":99480,"src":"2605:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99469,"nodeType":"UserDefinedTypeName","pathNode":{"id":99468,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2605:11:168"},"referencedDeclaration":99395,"src":"2605:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":99472,"mutability":"mutable","name":"_countered","nameLocation":"2629:10:168","nodeType":"VariableDeclaration","scope":99480,"src":"2624:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99471,"name":"bool","nodeType":"ElementaryTypeName","src":"2624:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2604:36:168"},"returnParameters":{"id":99477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99476,"mutability":"mutable","name":"self_","nameLocation":"2676:5:168","nodeType":"VariableDeclaration","scope":99480,"src":"2664:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99475,"nodeType":"UserDefinedTypeName","pathNode":{"id":99474,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2664:11:168"},"referencedDeclaration":99395,"src":"2664:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2663:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99490,"nodeType":"FunctionDefinition","src":"2788:158:168","nodes":[],"body":{"id":99489,"nodeType":"Block","src":"2868:78:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2887:53:168","statements":[{"nodeType":"YulAssignment","src":"2901:29:168","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2919:3:168","type":"","value":"192"},{"name":"_self","nodeType":"YulIdentifier","src":"2924:5:168"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2915:3:168"},"nodeType":"YulFunctionCall","src":"2915:15:168"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2901:10:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99483,"isOffset":false,"isSlot":false,"src":"2924:5:168","valueSize":1},{"declaration":99486,"isOffset":false,"isSlot":false,"src":"2901:10:168","valueSize":1}],"id":99488,"nodeType":"InlineAssembly","src":"2878:62:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2797:9:168","parameters":{"id":99484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99483,"mutability":"mutable","name":"_self","nameLocation":"2819:5:168","nodeType":"VariableDeclaration","scope":99490,"src":"2807:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99482,"nodeType":"UserDefinedTypeName","pathNode":{"id":99481,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2807:11:168"},"referencedDeclaration":99395,"src":"2807:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2806:19:168"},"returnParameters":{"id":99487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99486,"mutability":"mutable","name":"timestamp_","nameLocation":"2856:10:168","nodeType":"VariableDeclaration","scope":99490,"src":"2849:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":99485,"name":"uint64","nodeType":"ElementaryTypeName","src":"2849:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2848:19:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99500,"nodeType":"FunctionDefinition","src":"2952:176:168","nodes":[],"body":{"id":99499,"nodeType":"Block","src":"3034:94:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3053:69:168","statements":[{"nodeType":"YulAssignment","src":"3067:45:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3090:3:168","type":"","value":"160"},{"name":"_self","nodeType":"YulIdentifier","src":"3095:5:168"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3086:3:168"},"nodeType":"YulFunctionCall","src":"3086:15:168"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3103:8:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3082:3:168"},"nodeType":"YulFunctionCall","src":"3082:30:168"},"variableNames":[{"name":"partOffset_","nodeType":"YulIdentifier","src":"3067:11:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"3103:8:168","valueSize":1},{"declaration":99493,"isOffset":false,"isSlot":false,"src":"3095:5:168","valueSize":1},{"declaration":99496,"isOffset":false,"isSlot":false,"src":"3067:11:168","valueSize":1}],"id":99498,"nodeType":"InlineAssembly","src":"3044:78:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"partOffset","nameLocation":"2961:10:168","parameters":{"id":99494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99493,"mutability":"mutable","name":"_self","nameLocation":"2984:5:168","nodeType":"VariableDeclaration","scope":99500,"src":"2972:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99492,"nodeType":"UserDefinedTypeName","pathNode":{"id":99491,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"2972:11:168"},"referencedDeclaration":99395,"src":"2972:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2971:19:168"},"returnParameters":{"id":99497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99496,"mutability":"mutable","name":"partOffset_","nameLocation":"3021:11:168","nodeType":"VariableDeclaration","scope":99500,"src":"3014:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":99495,"name":"uint64","nodeType":"ElementaryTypeName","src":"3014:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3013:20:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99510,"nodeType":"FunctionDefinition","src":"3134:179:168","nodes":[],"body":{"id":99509,"nodeType":"Block","src":"3218:95:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3237:70:168","statements":[{"nodeType":"YulAssignment","src":"3251:46:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3275:3:168","type":"","value":"128"},{"name":"_self","nodeType":"YulIdentifier","src":"3280:5:168"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3271:3:168"},"nodeType":"YulFunctionCall","src":"3271:15:168"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3288:8:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3267:3:168"},"nodeType":"YulFunctionCall","src":"3267:30:168"},"variableNames":[{"name":"claimedSize_","nodeType":"YulIdentifier","src":"3251:12:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"3288:8:168","valueSize":1},{"declaration":99503,"isOffset":false,"isSlot":false,"src":"3280:5:168","valueSize":1},{"declaration":99506,"isOffset":false,"isSlot":false,"src":"3251:12:168","valueSize":1}],"id":99508,"nodeType":"InlineAssembly","src":"3228:79:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"claimedSize","nameLocation":"3143:11:168","parameters":{"id":99504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99503,"mutability":"mutable","name":"_self","nameLocation":"3167:5:168","nodeType":"VariableDeclaration","scope":99510,"src":"3155:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99502,"nodeType":"UserDefinedTypeName","pathNode":{"id":99501,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"3155:11:168"},"referencedDeclaration":99395,"src":"3155:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3154:19:168"},"returnParameters":{"id":99507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99506,"mutability":"mutable","name":"claimedSize_","nameLocation":"3204:12:168","nodeType":"VariableDeclaration","scope":99510,"src":"3197:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99505,"name":"uint32","nodeType":"ElementaryTypeName","src":"3197:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3196:21:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99520,"nodeType":"FunctionDefinition","src":"3319:190:168","nodes":[],"body":{"id":99519,"nodeType":"Block","src":"3411:98:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3430:73:168","statements":[{"nodeType":"YulAssignment","src":"3444:49:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3472:2:168","type":"","value":"96"},{"name":"_self","nodeType":"YulIdentifier","src":"3476:5:168"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3468:3:168"},"nodeType":"YulFunctionCall","src":"3468:14:168"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3484:8:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3464:3:168"},"nodeType":"YulFunctionCall","src":"3464:29:168"},"variableNames":[{"name":"blocksProcessed_","nodeType":"YulIdentifier","src":"3444:16:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"3484:8:168","valueSize":1},{"declaration":99513,"isOffset":false,"isSlot":false,"src":"3476:5:168","valueSize":1},{"declaration":99516,"isOffset":false,"isSlot":false,"src":"3444:16:168","valueSize":1}],"id":99518,"nodeType":"InlineAssembly","src":"3421:82:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blocksProcessed","nameLocation":"3328:15:168","parameters":{"id":99514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99513,"mutability":"mutable","name":"_self","nameLocation":"3356:5:168","nodeType":"VariableDeclaration","scope":99520,"src":"3344:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99512,"nodeType":"UserDefinedTypeName","pathNode":{"id":99511,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"3344:11:168"},"referencedDeclaration":99395,"src":"3344:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3343:19:168"},"returnParameters":{"id":99517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99516,"mutability":"mutable","name":"blocksProcessed_","nameLocation":"3393:16:168","nodeType":"VariableDeclaration","scope":99520,"src":"3386:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99515,"name":"uint32","nodeType":"ElementaryTypeName","src":"3386:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3385:25:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99530,"nodeType":"FunctionDefinition","src":"3515:187:168","nodes":[],"body":{"id":99529,"nodeType":"Block","src":"3605:97:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3624:72:168","statements":[{"nodeType":"YulAssignment","src":"3638:48:168","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3665:2:168","type":"","value":"64"},{"name":"_self","nodeType":"YulIdentifier","src":"3669:5:168"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3661:3:168"},"nodeType":"YulFunctionCall","src":"3661:14:168"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3677:8:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3657:3:168"},"nodeType":"YulFunctionCall","src":"3657:29:168"},"variableNames":[{"name":"bytesProcessed_","nodeType":"YulIdentifier","src":"3638:15:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99402,"isOffset":false,"isSlot":false,"src":"3677:8:168","valueSize":1},{"declaration":99523,"isOffset":false,"isSlot":false,"src":"3669:5:168","valueSize":1},{"declaration":99526,"isOffset":false,"isSlot":false,"src":"3638:15:168","valueSize":1}],"id":99528,"nodeType":"InlineAssembly","src":"3615:81:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesProcessed","nameLocation":"3524:14:168","parameters":{"id":99524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99523,"mutability":"mutable","name":"_self","nameLocation":"3551:5:168","nodeType":"VariableDeclaration","scope":99530,"src":"3539:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99522,"nodeType":"UserDefinedTypeName","pathNode":{"id":99521,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"3539:11:168"},"referencedDeclaration":99395,"src":"3539:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3538:19:168"},"returnParameters":{"id":99527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99526,"mutability":"mutable","name":"bytesProcessed_","nameLocation":"3588:15:168","nodeType":"VariableDeclaration","scope":99530,"src":"3581:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":99525,"name":"uint32","nodeType":"ElementaryTypeName","src":"3581:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3580:24:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":99540,"nodeType":"FunctionDefinition","src":"3708:161:168","nodes":[],"body":{"id":99539,"nodeType":"Block","src":"3786:83:168","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3805:58:168","statements":[{"nodeType":"YulAssignment","src":"3819:34:168","value":{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"3837:5:168"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"3844:8:168"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3833:3:168"},"nodeType":"YulFunctionCall","src":"3833:20:168"},"variableNames":[{"name":"countered_","nodeType":"YulIdentifier","src":"3819:10:168"}]}]},"evmVersion":"london","externalReferences":[{"declaration":99399,"isOffset":false,"isSlot":false,"src":"3844:8:168","valueSize":1},{"declaration":99533,"isOffset":false,"isSlot":false,"src":"3837:5:168","valueSize":1},{"declaration":99536,"isOffset":false,"isSlot":false,"src":"3819:10:168","valueSize":1}],"id":99538,"nodeType":"InlineAssembly","src":"3796:67:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"countered","nameLocation":"3717:9:168","parameters":{"id":99534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99533,"mutability":"mutable","name":"_self","nameLocation":"3739:5:168","nodeType":"VariableDeclaration","scope":99540,"src":"3727:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"},"typeName":{"id":99532,"nodeType":"UserDefinedTypeName","pathNode":{"id":99531,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":99395,"src":"3727:11:168"},"referencedDeclaration":99395,"src":"3727:11:168","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$99395","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3726:19:168"},"returnParameters":{"id":99537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99536,"mutability":"mutable","name":"countered_","nameLocation":"3774:10:168","nodeType":"VariableDeclaration","scope":99540,"src":"3769:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99535,"name":"bool","nodeType":"ElementaryTypeName","src":"3769:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3768:17:168"},"scope":99541,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LPPMetadataLib","contractDependencies":[],"contractKind":"library","documentation":{"id":99396,"nodeType":"StructuredDocumentation","src":"1218:50:168","text":"@notice LPP metadata UDT extension functions."},"fullyImplemented":true,"linearizedBaseContracts":[99541],"name":"LPPMetadataLib","nameLocation":"1276:14:168","scope":99542,"usedErrors":[]}],"license":"MIT"},"id":168}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckBalanceLow.Params","components":[{"name":"target","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:207:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:207:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:262;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;562:262:207;;;;;;;;622:13;647:20;681:7;670:29;;;;;;;;;;;;:::i;:::-;801:16;;;;777:13;;:21;;;:40;;562:262;-1:-1:-1;;;562:262:207:o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o;1380:631::-;1476:6;1529:2;1517:9;1508:7;1504:23;1500:32;1497:52;;;1545:1;1542;1535:12;1497:52;1578:2;1572:9;1620:2;1612:6;1608:15;1689:6;1677:10;1674:22;1653:18;1641:10;1638:34;1635:62;1632:88;;;1700:18;;:::i;:::-;1736:2;1729:22;1773:16;;1829:42;1818:54;;1808:65;;1798:93;;1887:1;1884;1877:12;1798:93;1900:21;;1975:2;1960:18;;;1954:25;1937:15;;;1930:50;;;;-1:-1:-1;1907:6:350;1380:631;-1:-1:-1;1380:631:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct CheckBalanceLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckBalanceLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's balance is below a given threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":\"CheckBalanceLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":{\"keccak256\":\"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1\",\"dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckBalanceLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":"CheckBalanceLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":{"keccak256":"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e","urls":["bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1","dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's balance is below a given threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"params":{"params":"Parameters to encode."}}},"title":"CheckBalanceLow"},"id":207}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckBalanceLow.Params","components":[{"name":"target","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:222:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:222:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:262;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:382;;1346:22;1328:41;;1316:2;1301:18;562:262:222;;;;;;;;622:13;647:20;681:7;670:29;;;;;;;;;;;;:::i;:::-;801:16;;;;777:13;;:21;;;:40;;562:262;-1:-1:-1;;;562:262:222:o;14:184:382:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:382;203:980;-1:-1:-1;;;;;203:980:382:o;1380:631::-;1476:6;1529:2;1517:9;1508:7;1504:23;1500:32;1497:52;;;1545:1;1542;1535:12;1497:52;1578:2;1572:9;1620:2;1612:6;1608:15;1689:6;1677:10;1674:22;1653:18;1641:10;1638:34;1635:62;1632:88;;;1700:18;;:::i;:::-;1736:2;1729:22;1773:16;;1829:42;1818:54;;1808:65;;1798:93;;1887:1;1884;1877:12;1798:93;1900:21;;1975:2;1960:18;;;1954:25;1937:15;;;1930:50;;;;-1:-1:-1;1907:6:382;1380:631;-1:-1:-1;1380:631:382:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct CheckBalanceLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckBalanceLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's balance is below a given threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":\"CheckBalanceLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":{\"keccak256\":\"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1\",\"dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckBalanceLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":"CheckBalanceLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":{"keccak256":"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e","urls":["bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1","dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's balance is below a given threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"params":{"params":"Parameters to encode."}}},"title":"CheckBalanceLow"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckBalanceLow.sol","id":110988,"exportedSymbols":{"CheckBalanceLow":[110987],"IDripCheck":[110940]},"nodeType":"SourceUnit","src":"32:795:222","nodes":[{"id":110942,"nodeType":"PragmaDirective","src":"32:23:222","nodes":[],"literals":["solidity","0.8",".15"]},{"id":110944,"nodeType":"ImportDirective","src":"57:47:222","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":110988,"sourceUnit":110941,"symbolAliases":[{"foreign":{"id":110943,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110940,"src":"66:10:222","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110987,"nodeType":"ContractDefinition","src":"220:606:222","nodes":[{"id":110952,"nodeType":"StructDefinition","src":"265:72:222","nodes":[],"canonicalName":"CheckBalanceLow.Params","members":[{"constant":false,"id":110949,"mutability":"mutable","name":"target","nameLocation":"297:6:222","nodeType":"VariableDeclaration","scope":110952,"src":"289:14:222","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110948,"name":"address","nodeType":"ElementaryTypeName","src":"289:7:222","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110951,"mutability":"mutable","name":"threshold","nameLocation":"321:9:222","nodeType":"VariableDeclaration","scope":110952,"src":"313:17:222","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110950,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:222","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Params","nameLocation":"272:6:222","scope":110987,"visibility":"public"},{"id":110958,"nodeType":"EventDefinition","src":"470:55:222","nodes":[],"anonymous":false,"documentation":{"id":110953,"nodeType":"StructuredDocumentation","src":"343:122:222","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"d675e8c1bf2f28f052b74c311412663dd60576c00ce3346b9a6d614df2b0b60b","name":"_EventToExposeStructInABI__Params","nameLocation":"476:33:222","parameters":{"id":110957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110956,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"517:6:222","nodeType":"VariableDeclaration","scope":110958,"src":"510:13:222","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_memory_ptr","typeString":"struct CheckBalanceLow.Params"},"typeName":{"id":110955,"nodeType":"UserDefinedTypeName","pathNode":{"id":110954,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":110952,"src":"510:6:222"},"referencedDeclaration":110952,"src":"510:6:222","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_storage_ptr","typeString":"struct CheckBalanceLow.Params"}},"visibility":"internal"}],"src":"509:15:222"}},{"id":110986,"nodeType":"FunctionDefinition","src":"562:262:222","nodes":[],"body":{"id":110985,"nodeType":"Block","src":"637:187:222","nodes":[],"statements":[{"assignments":[110968],"declarations":[{"constant":false,"id":110968,"mutability":"mutable","name":"params","nameLocation":"661:6:222","nodeType":"VariableDeclaration","scope":110985,"src":"647:20:222","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_memory_ptr","typeString":"struct CheckBalanceLow.Params"},"typeName":{"id":110967,"nodeType":"UserDefinedTypeName","pathNode":{"id":110966,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":110952,"src":"647:6:222"},"referencedDeclaration":110952,"src":"647:6:222","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_storage_ptr","typeString":"struct CheckBalanceLow.Params"}},"visibility":"internal"}],"id":110975,"initialValue":{"arguments":[{"id":110971,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110961,"src":"681:7:222","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":110972,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110952,"src":"691:6:222","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$110952_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}}],"id":110973,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"690:8:222","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$110952_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$110952_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}],"expression":{"id":110969,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"670:3:222","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":110970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"670:10:222","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":110974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"670:29:222","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"647:52:222"},{"expression":{"id":110983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110976,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110964,"src":"766:8:222","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":110982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":110977,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110968,"src":"777:6:222","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"id":110978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":110949,"src":"777:13:222","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":110979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"777:21:222","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":110980,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110968,"src":"801:6:222","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$110952_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"id":110981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":110951,"src":"801:16:222","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"777:40:222","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"766:51:222","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":110984,"nodeType":"ExpressionStatement","src":"766:51:222"}]},"baseFunctions":[110939],"documentation":{"id":110959,"nodeType":"StructuredDocumentation","src":"531:26:222","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"571:5:222","parameters":{"id":110962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110961,"mutability":"mutable","name":"_params","nameLocation":"590:7:222","nodeType":"VariableDeclaration","scope":110986,"src":"577:20:222","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":110960,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:222","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"576:22:222"},"returnParameters":{"id":110965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110964,"mutability":"mutable","name":"execute_","nameLocation":"627:8:222","nodeType":"VariableDeclaration","scope":110986,"src":"622:13:222","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110963,"name":"bool","nodeType":"ElementaryTypeName","src":"622:4:222","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"621:15:222"},"scope":110987,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":110946,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":110940,"src":"248:10:222"},"id":110947,"nodeType":"InheritanceSpecifier","src":"248:10:222"}],"canonicalName":"CheckBalanceLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":110945,"nodeType":"StructuredDocumentation","src":"106:114:222","text":"@title CheckBalanceLow\n @notice DripCheck for checking if an account's balance is below a given threshold."},"fullyImplemented":true,"linearizedBaseContracts":[110987,110940],"name":"CheckBalanceLow","nameLocation":"229:15:222","scope":110988,"usedErrors":[]}],"license":"MIT"},"id":222}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckGelatoLow.Params","components":[{"name":"treasury","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506102e3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:208:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:208:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;722:451;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;722:451:208;;;;;;;;782:13;807:20;841:7;830:29;;;;;;;;;;;;:::i;:::-;1150:16;;;;961:15;;1008:16;;;;;945:202;;;;;:49;2452:15:350;;;945:202:208;;;2434:34:350;1095:42:208;2484:18:350;;;2477:43;807:52:208;;-1:-1:-1;1150:16:208;;945:49;;;;;2346:18:350;;945:202:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:221;;722:451;-1:-1:-1;;;722:451:208:o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o;1380:200::-;1459:13;;1512:42;1501:54;;1491:65;;1481:93;;1570:1;1567;1560:12;1481:93;1380:200;;;:::o;1585:609::-;1681:6;1734:2;1722:9;1713:7;1709:23;1705:32;1702:52;;;1750:1;1747;1740:12;1702:52;1783:2;1777:9;1825:2;1817:6;1813:15;1894:6;1882:10;1879:22;1858:18;1846:10;1843:34;1840:62;1837:88;;;1905:18;;:::i;:::-;1941:2;1934:22;1980:40;2010:9;1980:40;:::i;:::-;1972:6;1965:56;2075:2;2064:9;2060:18;2054:25;2049:2;2041:6;2037:15;2030:50;2113:49;2158:2;2147:9;2143:18;2113:49;:::i;:::-;2108:2;2096:15;;2089:74;2100:6;1585:609;-1:-1:-1;;;1585:609:350:o;2531:184::-;2601:6;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;-1:-1:-1;2693:16:350;;2531:184;-1:-1:-1;2531:184:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct CheckGelatoLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckGelatoLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's Gelato ETH balance is below some threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"CheckGelatoLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckGelatoLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"CheckGelatoLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"params":{"params":"Parameters to encode."}}},"title":"CheckGelatoLow"},"id":208}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckGelatoLow.Params","components":[{"name":"treasury","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506102e3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:223:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:223:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;722:451;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:382;;1346:22;1328:41;;1316:2;1301:18;722:451:223;;;;;;;;782:13;807:20;841:7;830:29;;;;;;;;;;;;:::i;:::-;1150:16;;;;961:15;;1008:16;;;;;945:202;;;;;:49;2452:15:382;;;945:202:223;;;2434:34:382;1095:42:223;2484:18:382;;;2477:43;807:52:223;;-1:-1:-1;1150:16:223;;945:49;;;;;2346:18:382;;945:202:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:221;;722:451;-1:-1:-1;;;722:451:223:o;14:184:382:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:382;203:980;-1:-1:-1;;;;;203:980:382:o;1380:200::-;1459:13;;1512:42;1501:54;;1491:65;;1481:93;;1570:1;1567;1560:12;1481:93;1380:200;;;:::o;1585:609::-;1681:6;1734:2;1722:9;1713:7;1709:23;1705:32;1702:52;;;1750:1;1747;1740:12;1702:52;1783:2;1777:9;1825:2;1817:6;1813:15;1894:6;1882:10;1879:22;1858:18;1846:10;1843:34;1840:62;1837:88;;;1905:18;;:::i;:::-;1941:2;1934:22;1980:40;2010:9;1980:40;:::i;:::-;1972:6;1965:56;2075:2;2064:9;2060:18;2054:25;2049:2;2041:6;2037:15;2030:50;2113:49;2158:2;2147:9;2143:18;2113:49;:::i;:::-;2108:2;2096:15;;2089:74;2100:6;1585:609;-1:-1:-1;;;1585:609:382:o;2531:184::-;2601:6;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;-1:-1:-1;2693:16:382;;2531:184;-1:-1:-1;2531:184:382:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct CheckGelatoLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckGelatoLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's Gelato ETH balance is below some threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"CheckGelatoLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckGelatoLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"CheckGelatoLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"params":{"params":"Parameters to encode."}}},"title":"CheckGelatoLow"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckGelatoLow.sol","id":111053,"exportedSymbols":{"CheckGelatoLow":[111052],"IDripCheck":[110940],"IGelatoTreasury":[111001]},"nodeType":"SourceUnit","src":"32:1144:223","nodes":[{"id":110989,"nodeType":"PragmaDirective","src":"32:23:223","nodes":[],"literals":["solidity","0.8",".15"]},{"id":110991,"nodeType":"ImportDirective","src":"57:47:223","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":111053,"sourceUnit":110941,"symbolAliases":[{"foreign":{"id":110990,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110940,"src":"66:10:223","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111001,"nodeType":"ContractDefinition","src":"106:123:223","nodes":[{"id":111000,"nodeType":"FunctionDefinition","src":"138:89:223","nodes":[],"functionSelector":"b47064c8","implemented":false,"kind":"function","modifiers":[],"name":"userTokenBalance","nameLocation":"147:16:223","parameters":{"id":110996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110993,"mutability":"mutable","name":"_user","nameLocation":"172:5:223","nodeType":"VariableDeclaration","scope":111000,"src":"164:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110992,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110995,"mutability":"mutable","name":"_token","nameLocation":"187:6:223","nodeType":"VariableDeclaration","scope":111000,"src":"179:14:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110994,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163:31:223"},"returnParameters":{"id":110999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111000,"src":"218:7:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110997,"name":"uint256","nodeType":"ElementaryTypeName","src":"218:7:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"217:9:223"},"scope":111001,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGelatoTreasury","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[111001],"name":"IGelatoTreasury","nameLocation":"116:15:223","scope":111053,"usedErrors":[]},{"id":111052,"nodeType":"ContractDefinition","src":"352:823:223","nodes":[{"id":111011,"nodeType":"StructDefinition","src":"396:101:223","nodes":[],"canonicalName":"CheckGelatoLow.Params","members":[{"constant":false,"id":111006,"mutability":"mutable","name":"treasury","nameLocation":"428:8:223","nodeType":"VariableDeclaration","scope":111011,"src":"420:16:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111005,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111008,"mutability":"mutable","name":"threshold","nameLocation":"454:9:223","nodeType":"VariableDeclaration","scope":111011,"src":"446:17:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":111007,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":111010,"mutability":"mutable","name":"recipient","nameLocation":"481:9:223","nodeType":"VariableDeclaration","scope":111011,"src":"473:17:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111009,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Params","nameLocation":"403:6:223","scope":111052,"visibility":"public"},{"id":111017,"nodeType":"EventDefinition","src":"630:55:223","nodes":[],"anonymous":false,"documentation":{"id":111012,"nodeType":"StructuredDocumentation","src":"503:122:223","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"70b37aa219c5dbaa4c32bf3eb790cd0139092a31a18b69cec0036f7d67c342bc","name":"_EventToExposeStructInABI__Params","nameLocation":"636:33:223","parameters":{"id":111016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111015,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"677:6:223","nodeType":"VariableDeclaration","scope":111017,"src":"670:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":111014,"nodeType":"UserDefinedTypeName","pathNode":{"id":111013,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":111011,"src":"670:6:223"},"referencedDeclaration":111011,"src":"670:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"src":"669:15:223"}},{"id":111051,"nodeType":"FunctionDefinition","src":"722:451:223","nodes":[],"body":{"id":111050,"nodeType":"Block","src":"797:376:223","nodes":[],"statements":[{"assignments":[111027],"declarations":[{"constant":false,"id":111027,"mutability":"mutable","name":"params","nameLocation":"821:6:223","nodeType":"VariableDeclaration","scope":111050,"src":"807:20:223","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":111026,"nodeType":"UserDefinedTypeName","pathNode":{"id":111025,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":111011,"src":"807:6:223"},"referencedDeclaration":111011,"src":"807:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"id":111034,"initialValue":{"arguments":[{"id":111030,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111020,"src":"841:7:223","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":111031,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111011,"src":"851:6:223","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"id":111032,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:8:223","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}],"expression":{"id":111028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"830:3:223","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":111029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"830:10:223","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":111033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"830:29:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"807:52:223"},{"expression":{"id":111048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":111035,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111023,"src":"934:8:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":111047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":111041,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"1008:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":111010,"src":"1008:16:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":111043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:42:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":111037,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"961:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"treasury","nodeType":"MemberAccess","referencedDeclaration":111006,"src":"961:15:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":111036,"name":"IGelatoTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111001,"src":"945:15:223","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGelatoTreasury_$111001_$","typeString":"type(contract IGelatoTreasury)"}},"id":111039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:32:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGelatoTreasury_$111001","typeString":"contract IGelatoTreasury"}},"id":111040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userTokenBalance","nodeType":"MemberAccess","referencedDeclaration":111000,"src":"945:49:223","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":111044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:202:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":111045,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"1150:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":111008,"src":"1150:16:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"945:221:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"934:232:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111049,"nodeType":"ExpressionStatement","src":"934:232:223"}]},"baseFunctions":[110939],"documentation":{"id":111018,"nodeType":"StructuredDocumentation","src":"691:26:223","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"731:5:223","parameters":{"id":111021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111020,"mutability":"mutable","name":"_params","nameLocation":"750:7:223","nodeType":"VariableDeclaration","scope":111051,"src":"737:20:223","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111019,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:223","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"736:22:223"},"returnParameters":{"id":111024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111023,"mutability":"mutable","name":"execute_","nameLocation":"787:8:223","nodeType":"VariableDeclaration","scope":111051,"src":"782:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":111022,"name":"bool","nodeType":"ElementaryTypeName","src":"782:4:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"781:15:223"},"scope":111052,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":111003,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":110940,"src":"379:10:223"},"id":111004,"nodeType":"InheritanceSpecifier","src":"379:10:223"}],"canonicalName":"CheckGelatoLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":111002,"nodeType":"StructuredDocumentation","src":"231:121:223","text":"@title CheckGelatoLow\n @notice DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"fullyImplemented":true,"linearizedBaseContracts":[111052,110940],"name":"CheckGelatoLow","nameLocation":"361:14:223","scope":111053,"usedErrors":[]}],"license":"MIT"},"id":223}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"userTokenBalance","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"userTokenBalance(address,address)":"b47064c8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"userTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"IGelatoTreasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"userTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"IGelatoTreasury"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":208}
{"abi":[{"type":"function","name":"userTokenBalance","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"userTokenBalance(address,address)":"b47064c8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"userTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"IGelatoTreasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"userTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"IGelatoTreasury"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckGelatoLow.sol","id":111053,"exportedSymbols":{"CheckGelatoLow":[111052],"IDripCheck":[110940],"IGelatoTreasury":[111001]},"nodeType":"SourceUnit","src":"32:1144:223","nodes":[{"id":110989,"nodeType":"PragmaDirective","src":"32:23:223","nodes":[],"literals":["solidity","0.8",".15"]},{"id":110991,"nodeType":"ImportDirective","src":"57:47:223","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":111053,"sourceUnit":110941,"symbolAliases":[{"foreign":{"id":110990,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110940,"src":"66:10:223","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111001,"nodeType":"ContractDefinition","src":"106:123:223","nodes":[{"id":111000,"nodeType":"FunctionDefinition","src":"138:89:223","nodes":[],"functionSelector":"b47064c8","implemented":false,"kind":"function","modifiers":[],"name":"userTokenBalance","nameLocation":"147:16:223","parameters":{"id":110996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110993,"mutability":"mutable","name":"_user","nameLocation":"172:5:223","nodeType":"VariableDeclaration","scope":111000,"src":"164:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110992,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110995,"mutability":"mutable","name":"_token","nameLocation":"187:6:223","nodeType":"VariableDeclaration","scope":111000,"src":"179:14:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110994,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163:31:223"},"returnParameters":{"id":110999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111000,"src":"218:7:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110997,"name":"uint256","nodeType":"ElementaryTypeName","src":"218:7:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"217:9:223"},"scope":111001,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGelatoTreasury","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[111001],"name":"IGelatoTreasury","nameLocation":"116:15:223","scope":111053,"usedErrors":[]},{"id":111052,"nodeType":"ContractDefinition","src":"352:823:223","nodes":[{"id":111011,"nodeType":"StructDefinition","src":"396:101:223","nodes":[],"canonicalName":"CheckGelatoLow.Params","members":[{"constant":false,"id":111006,"mutability":"mutable","name":"treasury","nameLocation":"428:8:223","nodeType":"VariableDeclaration","scope":111011,"src":"420:16:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111005,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":111008,"mutability":"mutable","name":"threshold","nameLocation":"454:9:223","nodeType":"VariableDeclaration","scope":111011,"src":"446:17:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":111007,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":111010,"mutability":"mutable","name":"recipient","nameLocation":"481:9:223","nodeType":"VariableDeclaration","scope":111011,"src":"473:17:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111009,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:223","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Params","nameLocation":"403:6:223","scope":111052,"visibility":"public"},{"id":111017,"nodeType":"EventDefinition","src":"630:55:223","nodes":[],"anonymous":false,"documentation":{"id":111012,"nodeType":"StructuredDocumentation","src":"503:122:223","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"70b37aa219c5dbaa4c32bf3eb790cd0139092a31a18b69cec0036f7d67c342bc","name":"_EventToExposeStructInABI__Params","nameLocation":"636:33:223","parameters":{"id":111016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111015,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"677:6:223","nodeType":"VariableDeclaration","scope":111017,"src":"670:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":111014,"nodeType":"UserDefinedTypeName","pathNode":{"id":111013,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":111011,"src":"670:6:223"},"referencedDeclaration":111011,"src":"670:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"src":"669:15:223"}},{"id":111051,"nodeType":"FunctionDefinition","src":"722:451:223","nodes":[],"body":{"id":111050,"nodeType":"Block","src":"797:376:223","nodes":[],"statements":[{"assignments":[111027],"declarations":[{"constant":false,"id":111027,"mutability":"mutable","name":"params","nameLocation":"821:6:223","nodeType":"VariableDeclaration","scope":111050,"src":"807:20:223","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":111026,"nodeType":"UserDefinedTypeName","pathNode":{"id":111025,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":111011,"src":"807:6:223"},"referencedDeclaration":111011,"src":"807:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"id":111034,"initialValue":{"arguments":[{"id":111030,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111020,"src":"841:7:223","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":111031,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111011,"src":"851:6:223","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"id":111032,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:8:223","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$111011_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}],"expression":{"id":111028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"830:3:223","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":111029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"830:10:223","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":111033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"830:29:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"807:52:223"},{"expression":{"id":111048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":111035,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111023,"src":"934:8:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":111047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":111041,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"1008:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":111010,"src":"1008:16:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":111043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:42:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":111037,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"961:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"treasury","nodeType":"MemberAccess","referencedDeclaration":111006,"src":"961:15:223","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":111036,"name":"IGelatoTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111001,"src":"945:15:223","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGelatoTreasury_$111001_$","typeString":"type(contract IGelatoTreasury)"}},"id":111039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:32:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGelatoTreasury_$111001","typeString":"contract IGelatoTreasury"}},"id":111040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userTokenBalance","nodeType":"MemberAccess","referencedDeclaration":111000,"src":"945:49:223","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":111044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:202:223","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":111045,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111027,"src":"1150:6:223","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$111011_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":111046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":111008,"src":"1150:16:223","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"945:221:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"934:232:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111049,"nodeType":"ExpressionStatement","src":"934:232:223"}]},"baseFunctions":[110939],"documentation":{"id":111018,"nodeType":"StructuredDocumentation","src":"691:26:223","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"731:5:223","parameters":{"id":111021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111020,"mutability":"mutable","name":"_params","nameLocation":"750:7:223","nodeType":"VariableDeclaration","scope":111051,"src":"737:20:223","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111019,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:223","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"736:22:223"},"returnParameters":{"id":111024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111023,"mutability":"mutable","name":"execute_","nameLocation":"787:8:223","nodeType":"VariableDeclaration","scope":111051,"src":"782:13:223","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":111022,"name":"bool","nodeType":"ElementaryTypeName","src":"782:4:223","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"781:15:223"},"scope":111052,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":111003,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":110940,"src":"379:10:223"},"id":111004,"nodeType":"InheritanceSpecifier","src":"379:10:223"}],"canonicalName":"CheckGelatoLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":111002,"nodeType":"StructuredDocumentation","src":"231:121:223","text":"@title CheckGelatoLow\n @notice DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"fullyImplemented":true,"linearizedBaseContracts":[111052,110940],"name":"CheckGelatoLow","nameLocation":"361:14:223","scope":111053,"usedErrors":[]}],"license":"MIT"},"id":223}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:209:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:209:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:99;;;;;;:::i;:::-;-1:-1:-1;333:4:209;;245:99;;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;245:99:209;;;;;;;14:184:350;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckTrue\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck that always returns true.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckTrue.sol\":\"CheckTrue\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckTrue.sol\":{\"keccak256\":\"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb\",\"dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckTrue.sol":"CheckTrue"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckTrue.sol":{"keccak256":"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677","urls":["bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb","dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"notice":"DripCheck that always returns true."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"title":"CheckTrue"},"id":209}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:225:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:225:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:99;;;;;;:::i;:::-;-1:-1:-1;333:4:225;;245:99;;;;1353:14:382;;1346:22;1328:41;;1316:2;1301:18;245:99:225;;;;;;;14:184:382;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:382;203:980;-1:-1:-1;;;;;203:980:382:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckTrue\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck that always returns true.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckTrue.sol\":\"CheckTrue\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckTrue.sol\":{\"keccak256\":\"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb\",\"dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckTrue.sol":"CheckTrue"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckTrue.sol":{"keccak256":"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677","urls":["bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb","dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"notice":"DripCheck that always returns true."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"title":"CheckTrue"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckTrue.sol","id":111188,"exportedSymbols":{"CheckTrue":[111187],"IDripCheck":[110940]},"nodeType":"SourceUnit","src":"32:315:225","nodes":[{"id":111168,"nodeType":"PragmaDirective","src":"32:23:225","nodes":[],"literals":["solidity","0.8",".15"]},{"id":111170,"nodeType":"ImportDirective","src":"57:47:225","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":111188,"sourceUnit":110941,"symbolAliases":[{"foreign":{"id":111169,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110940,"src":"66:10:225","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111187,"nodeType":"ContractDefinition","src":"175:171:225","nodes":[{"id":111186,"nodeType":"FunctionDefinition","src":"245:99:225","nodes":[],"body":{"id":111185,"nodeType":"Block","src":"312:32:225","nodes":[],"statements":[{"expression":{"id":111183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":111181,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111179,"src":"322:8:225","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":111182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"333:4:225","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"322:15:225","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":111184,"nodeType":"ExpressionStatement","src":"322:15:225"}]},"baseFunctions":[110939],"documentation":{"id":111174,"nodeType":"StructuredDocumentation","src":"214:26:225","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"254:5:225","parameters":{"id":111177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111186,"src":"260:12:225","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111175,"name":"bytes","nodeType":"ElementaryTypeName","src":"260:5:225","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"259:14:225"},"returnParameters":{"id":111180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111179,"mutability":"mutable","name":"execute_","nameLocation":"302:8:225","nodeType":"VariableDeclaration","scope":111186,"src":"297:13:225","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":111178,"name":"bool","nodeType":"ElementaryTypeName","src":"297:4:225","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"296:15:225"},"scope":111187,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":111172,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":110940,"src":"197:10:225"},"id":111173,"nodeType":"InheritanceSpecifier","src":"197:10:225"}],"canonicalName":"CheckTrue","contractDependencies":[],"contractKind":"contract","documentation":{"id":111171,"nodeType":"StructuredDocumentation","src":"106:69:225","text":"@title CheckTrue\n @notice DripCheck that always returns true."},"fullyImplemented":true,"linearizedBaseContracts":[111187,110940],"name":"CheckTrue","nameLocation":"184:9:225","scope":111188,"usedErrors":[]}],"license":"MIT"},"id":225}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:188:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;397:2170:188;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:188:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"Constants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead."},"devdoc":{"version":1,"kind":"dev","title":"Constants"},"id":188}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2561:199:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;397:2561:199;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2561:199:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"Constants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead."},"devdoc":{"version":1,"kind":"dev","title":"Constants"},"ast":{"absolutePath":"src/libraries/Constants.sol","id":106258,"exportedSymbols":{"Constants":[106257],"ResourceMetering":[89958]},"nodeType":"SourceUnit","src":"32:2927:199","nodes":[{"id":106197,"nodeType":"PragmaDirective","src":"32:23:199","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":106199,"nodeType":"ImportDirective","src":"57:63:199","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":106258,"sourceUnit":89959,"symbolAliases":[{"foreign":{"id":106198,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89958,"src":"66:16:199","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":106257,"nodeType":"ContractDefinition","src":"397:2561:199","nodes":[{"id":106207,"nodeType":"VariableDeclaration","src":"961:57:199","nodes":[],"constant":true,"documentation":{"id":106201,"nodeType":"StructuredDocumentation","src":"421:535:199","text":"@notice Special address to be used as the tx origin for gas estimation calls in the\n OptimismPortal and CrossDomainMessenger calls. You only need to use this address if\n the minimum gas limit specified by the user is not actually enough to execute the\n given message and you're attempting to estimate the actual necessary gas limit. We\n use address(1) because it's the ecrecover precompile and therefore guaranteed to\n never have any code on any EVM chain."},"mutability":"constant","name":"ESTIMATION_ADDRESS","nameLocation":"987:18:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106202,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:199","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":106205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1016:1:199","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":106204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1008:7:199","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":106203,"name":"address","nodeType":"ElementaryTypeName","src":"1008:7:199","typeDescriptions":{}}},"id":106206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1008:10:199","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":106211,"nodeType":"VariableDeclaration","src":"1292:88:199","nodes":[],"constant":true,"documentation":{"id":106208,"nodeType":"StructuredDocumentation","src":"1025:262:199","text":"@notice Value used for the L2 sender storage slot in both the OptimismPortal and the\n CrossDomainMessenger contracts before an actual sender is set. This value is\n non-zero to reduce the gas cost of message passing transactions."},"mutability":"constant","name":"DEFAULT_L2_SENDER","nameLocation":"1318:17:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106209,"name":"address","nodeType":"ElementaryTypeName","src":"1292:7:199","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303064456144","id":106210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1338:42:199","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000000000000000000000dEaD"},"visibility":"internal"},{"id":106215,"nodeType":"VariableDeclaration","src":"1549:131:199","nodes":[],"constant":true,"documentation":{"id":106212,"nodeType":"StructuredDocumentation","src":"1387:157:199","text":"@notice The storage slot that holds the address of a proxy implementation.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`"},"mutability":"constant","name":"PROXY_IMPLEMENTATION_ADDRESS","nameLocation":"1575:28:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":106213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1549:7:199","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":106214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:66:199","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":106219,"nodeType":"VariableDeclaration","src":"1827:114:199","nodes":[],"constant":true,"documentation":{"id":106216,"nodeType":"StructuredDocumentation","src":"1687:135:199","text":"@notice The storage slot that holds the address of the owner.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`"},"mutability":"constant","name":"PROXY_OWNER_ADDRESS","nameLocation":"1853:19:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":106217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1827:7:199","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":106218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1875:66:199","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":106223,"nodeType":"VariableDeclaration","src":"2039:76:199","nodes":[],"constant":true,"documentation":{"id":106220,"nodeType":"StructuredDocumentation","src":"1948:86:199","text":"@notice The address that represents ether when dealing with ERC20 token addresses."},"mutability":"constant","name":"ETHER","nameLocation":"2065:5:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106221,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:199","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":106222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2073:42:199","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"internal"},{"id":106227,"nodeType":"VariableDeclaration","src":"2244:88:199","nodes":[],"constant":true,"documentation":{"id":106224,"nodeType":"StructuredDocumentation","src":"2122:117:199","text":"@notice The address that represents the system caller responsible for L1 attributes\n transactions."},"mutability":"constant","name":"DEPOSITOR_ACCOUNT","nameLocation":"2270:17:199","scope":106257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106225,"name":"address","nodeType":"ElementaryTypeName","src":"2244:7:199","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656144444561444465416444654164444541644445616464654164644541644445416430303031","id":106226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2290:42:199","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001"},"visibility":"internal"},{"id":106256,"nodeType":"FunctionDefinition","src":"2481:475:199","nodes":[],"body":{"id":106255,"nodeType":"Block","src":"2579:377:199","nodes":[],"statements":[{"assignments":[106238],"declarations":[{"constant":false,"id":106238,"mutability":"mutable","name":"config","nameLocation":"2628:6:199","nodeType":"VariableDeclaration","scope":106255,"src":"2589:45:199","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":106237,"nodeType":"UserDefinedTypeName","pathNode":{"id":106236,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":89619,"src":"2589:31:199"},"referencedDeclaration":89619,"src":"2589:31:199","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"id":106252,"initialValue":{"arguments":[{"hexValue":"32305f3030305f303030","id":106241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2701:10:199","typeDescriptions":{"typeIdentifier":"t_rational_20000000_by_1","typeString":"int_const 20000000"},"value":"20_000_000"},{"hexValue":"3130","id":106242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:2:199","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"38","id":106243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:199","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"hexValue":"31","id":106244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2823:6:199","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1"},{"hexValue":"315f3030305f303030","id":106245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859:9:199","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},{"expression":{"arguments":[{"id":106248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2903:7:199","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":106247,"name":"uint128","nodeType":"ElementaryTypeName","src":"2903:7:199","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":106246,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2898:4:199","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":106249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:13:199","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":106250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2898:17:199","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20000000_by_1","typeString":"int_const 20000000"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":106239,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89958,"src":"2637:16:199","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceMetering_$89958_$","typeString":"type(contract ResourceMetering)"}},"id":106240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ResourceConfig","nodeType":"MemberAccess","referencedDeclaration":89619,"src":"2637:31:199","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceConfig_$89619_storage_ptr_$","typeString":"type(struct ResourceMetering.ResourceConfig storage pointer)"}},"id":106251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["maxResourceLimit","elasticityMultiplier","baseFeeMaxChangeDenominator","minimumBaseFee","systemTxMaxGas","maximumBaseFee"],"nodeType":"FunctionCall","src":"2637:289:199","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"nodeType":"VariableDeclarationStatement","src":"2589:337:199"},{"expression":{"id":106253,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106238,"src":"2943:6:199","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"functionReturnParameters":106233,"id":106254,"nodeType":"Return","src":"2936:13:199"}]},"documentation":{"id":106228,"nodeType":"StructuredDocumentation","src":"2339:137:199","text":"@notice Returns the default values for the ResourceConfig. These are the recommended values\n for a production network."},"implemented":true,"kind":"function","modifiers":[],"name":"DEFAULT_RESOURCE_CONFIG","nameLocation":"2490:23:199","parameters":{"id":106229,"nodeType":"ParameterList","parameters":[],"src":"2513:2:199"},"returnParameters":{"id":106233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":106256,"src":"2539:38:199","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":106231,"nodeType":"UserDefinedTypeName","pathNode":{"id":106230,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":89619,"src":"2539:31:199"},"referencedDeclaration":89619,"src":"2539:31:199","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"2538:40:199"},"scope":106257,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Constants","contractDependencies":[],"contractKind":"library","documentation":{"id":106200,"nodeType":"StructuredDocumentation","src":"122:275:199","text":"@title Constants\n @notice Constants is a library for storing constants. Simple! Don't put everything in here, just\n the stuff used in multiple contracts. Constants that only apply to a single contract\n should be defined in that contract instead."},"fullyImplemented":true,"linearizedBaseContracts":[106257],"name":"Constants","nameLocation":"405:9:199","scope":106258,"usedErrors":[]}],"license":"MIT"},"id":199}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":"ContextUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"id":32}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":"ContextUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":48644,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","id":48646,"exportedSymbols":{"AddressUpgradeable":[48603],"ContextUpgradeable":[48645],"Initializable":[47257]},"nodeType":"SourceUnit","src":"86:1259:34","nodes":[{"id":48605,"nodeType":"PragmaDirective","src":"86:23:34","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48606,"nodeType":"ImportDirective","src":"110:42:34","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":48646,"sourceUnit":47258,"symbolAliases":[],"unitAlias":""},{"id":48645,"nodeType":"ContractDefinition","src":"651:693:34","nodes":[{"id":48615,"nodeType":"FunctionDefinition","src":"711:59:34","nodes":[],"body":{"id":48614,"nodeType":"Block","src":"763:7:34","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":48612,"kind":"modifierInvocation","modifierName":{"id":48611,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"746:16:34"},"nodeType":"ModifierInvocation","src":"746:16:34"}],"name":"__Context_init","nameLocation":"720:14:34","parameters":{"id":48610,"nodeType":"ParameterList","parameters":[],"src":"734:2:34"},"returnParameters":{"id":48613,"nodeType":"ParameterList","parameters":[],"src":"763:0:34"},"scope":48645,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48621,"nodeType":"FunctionDefinition","src":"776:69:34","nodes":[],"body":{"id":48620,"nodeType":"Block","src":"838:7:34","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":48618,"kind":"modifierInvocation","modifierName":{"id":48617,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"821:16:34"},"nodeType":"ModifierInvocation","src":"821:16:34"}],"name":"__Context_init_unchained","nameLocation":"785:24:34","parameters":{"id":48616,"nodeType":"ParameterList","parameters":[],"src":"809:2:34"},"returnParameters":{"id":48619,"nodeType":"ParameterList","parameters":[],"src":"838:0:34"},"scope":48645,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48630,"nodeType":"FunctionDefinition","src":"850:96:34","nodes":[],"body":{"id":48629,"nodeType":"Block","src":"912:34:34","nodes":[],"statements":[{"expression":{"expression":{"id":48626,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"929:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48625,"id":48628,"nodeType":"Return","src":"922:17:34"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:34","parameters":{"id":48622,"nodeType":"ParameterList","parameters":[],"src":"869:2:34"},"returnParameters":{"id":48625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48630,"src":"903:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48623,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:34"},"scope":48645,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48639,"nodeType":"FunctionDefinition","src":"952:99:34","nodes":[],"body":{"id":48638,"nodeType":"Block","src":"1019:32:34","nodes":[],"statements":[{"expression":{"expression":{"id":48635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1036:8:34","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":48634,"id":48637,"nodeType":"Return","src":"1029:15:34"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:34","parameters":{"id":48631,"nodeType":"ParameterList","parameters":[],"src":"969:2:34"},"returnParameters":{"id":48634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48639,"src":"1003:14:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48632,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:34"},"scope":48645,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48644,"nodeType":"VariableDeclaration","src":"1316:25:34","nodes":[],"constant":false,"documentation":{"id":48640,"nodeType":"StructuredDocumentation","src":"1057:254:34","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1336:5:34","scope":48645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":48641,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48643,"length":{"hexValue":"3530","id":48642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:34","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":48608,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"691:13:34"},"id":48609,"nodeType":"InheritanceSpecifier","src":"691:13:34"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":48607,"nodeType":"StructuredDocumentation","src":"154:496:34","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[48645,47257],"name":"ContextUpgradeable","nameLocation":"669:18:34","scope":48646,"usedErrors":[]}],"license":"MIT"},"id":34}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:59;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":"Counters"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":{"keccak256":"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1","urls":["bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee","dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Matt Condon (@shrugs)","details":"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`","title":"Counters"},"id":59}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:61;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:61:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":"Counters"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":{"keccak256":"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1","urls":["bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee","dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Matt Condon (@shrugs)","details":"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`","title":"Counters"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Counters.sol","id":53509,"exportedSymbols":{"Counters":[53508]},"nodeType":"SourceUnit","src":"87:1309:61","nodes":[{"id":53436,"nodeType":"PragmaDirective","src":"87:23:61","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53508,"nodeType":"ContractDefinition","src":"424:971:61","nodes":[{"id":53440,"nodeType":"StructDefinition","src":"447:374:61","nodes":[],"canonicalName":"Counters.Counter","members":[{"constant":false,"id":53439,"mutability":"mutable","name":"_value","nameLocation":"794:6:61","nodeType":"VariableDeclaration","scope":53440,"src":"786:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53438,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:61","scope":53508,"visibility":"public"},{"id":53452,"nodeType":"FunctionDefinition","src":"827:112:61","nodes":[],"body":{"id":53451,"nodeType":"Block","src":"901:38:61","nodes":[],"statements":[{"expression":{"expression":{"id":53448,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"918:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":53449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":53439,"src":"918:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":53447,"id":53450,"nodeType":"Return","src":"911:21:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:61","parameters":{"id":53444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53443,"mutability":"mutable","name":"counter","nameLocation":"860:7:61","nodeType":"VariableDeclaration","scope":53452,"src":"844:23:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":53442,"nodeType":"UserDefinedTypeName","pathNode":{"id":53441,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":53440,"src":"844:7:61"},"referencedDeclaration":53440,"src":"844:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:61"},"returnParameters":{"id":53447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53452,"src":"892:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53445,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:61"},"scope":53508,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":53466,"nodeType":"FunctionDefinition","src":"945:123:61","nodes":[],"body":{"id":53465,"nodeType":"Block","src":"998:70:61","nodes":[],"statements":[{"id":53464,"nodeType":"UncheckedBlock","src":"1008:54:61","statements":[{"expression":{"id":53462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":53458,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53455,"src":"1032:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":53460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":53439,"src":"1032:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":53461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53463,"nodeType":"ExpressionStatement","src":"1032:19:61"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:61","parameters":{"id":53456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53455,"mutability":"mutable","name":"counter","nameLocation":"980:7:61","nodeType":"VariableDeclaration","scope":53466,"src":"964:23:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":53454,"nodeType":"UserDefinedTypeName","pathNode":{"id":53453,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":53440,"src":"964:7:61"},"referencedDeclaration":53440,"src":"964:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:61"},"returnParameters":{"id":53457,"nodeType":"ParameterList","parameters":[],"src":"998:0:61"},"scope":53508,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53494,"nodeType":"FunctionDefinition","src":"1074:229:61","nodes":[],"body":{"id":53493,"nodeType":"Block","src":"1127:176:61","nodes":[],"statements":[{"assignments":[53473],"declarations":[{"constant":false,"id":53473,"mutability":"mutable","name":"value","nameLocation":"1145:5:61","nodeType":"VariableDeclaration","scope":53493,"src":"1137:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53476,"initialValue":{"expression":{"id":53474,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53469,"src":"1153:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":53475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":53439,"src":"1153:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:61"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53473,"src":"1185:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":53477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1177:49:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53483,"nodeType":"ExpressionStatement","src":"1177:49:61"},{"id":53492,"nodeType":"UncheckedBlock","src":"1236:61:61","statements":[{"expression":{"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":53484,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53469,"src":"1260:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":53486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":53439,"src":"1260:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53473,"src":"1277:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53491,"nodeType":"ExpressionStatement","src":"1260:26:61"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:61","parameters":{"id":53470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53469,"mutability":"mutable","name":"counter","nameLocation":"1109:7:61","nodeType":"VariableDeclaration","scope":53494,"src":"1093:23:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":53468,"nodeType":"UserDefinedTypeName","pathNode":{"id":53467,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":53440,"src":"1093:7:61"},"referencedDeclaration":53440,"src":"1093:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:61"},"returnParameters":{"id":53471,"nodeType":"ParameterList","parameters":[],"src":"1127:0:61"},"scope":53508,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53507,"nodeType":"FunctionDefinition","src":"1309:84:61","nodes":[],"body":{"id":53506,"nodeType":"Block","src":"1358:35:61","nodes":[],"statements":[{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":53500,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53497,"src":"1368:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":53502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":53439,"src":"1368:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":53503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53505,"nodeType":"ExpressionStatement","src":"1368:18:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:61","parameters":{"id":53498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53497,"mutability":"mutable","name":"counter","nameLocation":"1340:7:61","nodeType":"VariableDeclaration","scope":53507,"src":"1324:23:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":53496,"nodeType":"UserDefinedTypeName","pathNode":{"id":53495,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":53440,"src":"1324:7:61"},"referencedDeclaration":53440,"src":"1324:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$53440_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:61"},"returnParameters":{"id":53499,"nodeType":"ParameterList","parameters":[],"src":"1358:0:61"},"scope":53508,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":53437,"nodeType":"StructuredDocumentation","src":"112:311:61","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"linearizedBaseContracts":[53508],"name":"Counters","nameLocation":"432:8:61","scope":53509,"usedErrors":[]}],"license":"MIT"},"id":61}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable2\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable2.sol\":\"CrossDomainOwnable2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/CrossDomainOwnable2.sol\":{\"keccak256\":\"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c\",\"dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable2.sol":"CrossDomainOwnable2"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/CrossDomainOwnable2.sol":{"keccak256":"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1","urls":["bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c","dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable2.sol:CrossDomainOwnable2","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable2"},"id":138}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable2\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable2.sol\":\"CrossDomainOwnable2\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/CrossDomainOwnable2.sol\":{\"keccak256\":\"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c\",\"dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0x27bd0275c4baf4e39360d47e51077dea7cc6027d6b97c2806c0bf64d75081d5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9a6564208b01101ea0687424b6812629afafa8f4035911b8647e969998e5d8e\",\"dweb:/ipfs/Qme5cqhBUkcJZqeRBd1SVdEP3sGGtaSFVpva4BbZFQBXsc\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893\",\"dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable2.sol":"CrossDomainOwnable2"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/CrossDomainOwnable2.sol":{"keccak256":"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1","urls":["bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c","dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0x27bd0275c4baf4e39360d47e51077dea7cc6027d6b97c2806c0bf64d75081d5b","urls":["bzz-raw://b9a6564208b01101ea0687424b6812629afafa8f4035911b8647e969998e5d8e","dweb:/ipfs/Qme5cqhBUkcJZqeRBd1SVdEP3sGGtaSFVpva4BbZFQBXsc"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f","urls":["bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893","dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":49473,"contract":"src/L2/CrossDomainOwnable2.sol:CrossDomainOwnable2","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable2"},"ast":{"absolutePath":"src/L2/CrossDomainOwnable2.sol","id":91531,"exportedSymbols":{"CrossDomainOwnable2":[91530],"L2CrossDomainMessenger":[92926],"Ownable":[49578],"Predeploys":[107708]},"nodeType":"SourceUnit","src":"32:1253:147","nodes":[{"id":91485,"nodeType":"PragmaDirective","src":"32:23:147","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":91487,"nodeType":"ImportDirective","src":"57:58:147","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":91531,"sourceUnit":107709,"symbolAliases":[{"foreign":{"id":91486,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"66:10:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91489,"nodeType":"ImportDirective","src":"116:75:147","nodes":[],"absolutePath":"src/L2/L2CrossDomainMessenger.sol","file":"src/L2/L2CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":91531,"sourceUnit":92927,"symbolAliases":[{"foreign":{"id":91488,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92926,"src":"125:22:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91491,"nodeType":"ImportDirective","src":"192:69:147","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":91531,"sourceUnit":49579,"symbolAliases":[{"foreign":{"id":91490,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49578,"src":"201:7:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91530,"nodeType":"ContractDefinition","src":"605:679:147","nodes":[{"id":91529,"nodeType":"FunctionDefinition","src":"909:373:147","nodes":[],"body":{"id":91528,"nodeType":"Block","src":"955:327:147","nodes":[],"statements":[{"assignments":[91501],"declarations":[{"constant":false,"id":91501,"mutability":"mutable","name":"messenger","nameLocation":"988:9:147","nodeType":"VariableDeclaration","scope":91528,"src":"965:32:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"},"typeName":{"id":91500,"nodeType":"UserDefinedTypeName","pathNode":{"id":91499,"name":"L2CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":92926,"src":"965:22:147"},"referencedDeclaration":92926,"src":"965:22:147","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"visibility":"internal"}],"id":91506,"initialValue":{"arguments":[{"expression":{"id":91503,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"1023:10:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$107708_$","typeString":"type(library Predeploys)"}},"id":91504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":107298,"src":"1023:36:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":91502,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92926,"src":"1000:22:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2CrossDomainMessenger_$92926_$","typeString":"type(contract L2CrossDomainMessenger)"}},"id":91505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1000:60:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"nodeType":"VariableDeclarationStatement","src":"965:95:147"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":91508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1079:3:147","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1079:10:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":91512,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91501,"src":"1101:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}],"id":91511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1093:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91510,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:147","typeDescriptions":{}}},"id":91513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1093:18:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1079:32:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65323a2063616c6c6572206973206e6f7420746865206d657373656e676572","id":91515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1113:50:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_90885beba6d8ea36f745326ff4a084c229725071692f6ddfe94d01d3b4813888","typeString":"literal_string \"CrossDomainOwnable2: caller is not the messenger\""},"value":"CrossDomainOwnable2: caller is not the messenger"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_90885beba6d8ea36f745326ff4a084c229725071692f6ddfe94d01d3b4813888","typeString":"literal_string \"CrossDomainOwnable2: caller is not the messenger\""}],"id":91507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1071:7:147","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1071:93:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91517,"nodeType":"ExpressionStatement","src":"1071:93:147"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":91519,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49506,"src":"1183:5:147","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":91520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:7:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":91521,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91501,"src":"1194:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"id":91522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":112945,"src":"1194:30:147","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":91523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1194:32:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1183:43:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65323a2063616c6c6572206973206e6f7420746865206f776e6572","id":91525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1228:46:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_6286a957f53e75ef1584fc725b50b9b26cd2ce78d6f59b02b2b5732930e665ff","typeString":"literal_string \"CrossDomainOwnable2: caller is not the owner\""},"value":"CrossDomainOwnable2: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6286a957f53e75ef1584fc725b50b9b26cd2ce78d6f59b02b2b5732930e665ff","typeString":"literal_string \"CrossDomainOwnable2: caller is not the owner\""}],"id":91518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1175:7:147","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1175:100:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91527,"nodeType":"ExpressionStatement","src":"1175:100:147"}]},"baseFunctions":[49520],"documentation":{"id":91495,"nodeType":"StructuredDocumentation","src":"660:244:147","text":"@notice Overrides the implementation of the `onlyOwner` modifier to check that the unaliased\n `xDomainMessageSender` is the owner of the contract. This value is set to the caller\n of the L1CrossDomainMessenger."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"918:11:147","overrides":{"id":91497,"nodeType":"OverrideSpecifier","overrides":[],"src":"946:8:147"},"parameters":{"id":91496,"nodeType":"ParameterList","parameters":[],"src":"929:2:147"},"returnParameters":{"id":91498,"nodeType":"ParameterList","parameters":[],"src":"955:0:147"},"scope":91530,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":91493,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":49578,"src":"646:7:147"},"id":91494,"nodeType":"InheritanceSpecifier","src":"646:7:147"}],"canonicalName":"CrossDomainOwnable2","contractDependencies":[],"contractKind":"contract","documentation":{"id":91492,"nodeType":"StructuredDocumentation","src":"263:342:147","text":"@title CrossDomainOwnable2\n @notice This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned\n by contracts on L1. Note that this contract is meant to be used with systems that use\n the CrossDomainMessenger system. It will not work if the OptimismPortal is used\n directly."},"fullyImplemented":true,"linearizedBaseContracts":[91530,49578,53434],"name":"CrossDomainOwnable2","nameLocation":"623:19:147","scope":91531,"usedErrors":[]}],"license":"MIT"},"id":147}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isLocal","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_isLocal","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"},{"name":"isLocal","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isLocal()":"0ee04629","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","transferOwnership(address,bool)":"b242e534"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"isLocal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLocal\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"params\":{\"isLocal\":\"Configures the `isLocal` contract variable.\",\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnership(address,bool)\":{\"params\":{\"_isLocal\":\"Configures the locality of the ownership.\",\"_owner\":\"The new owner of the contract.\"}}},\"title\":\"CrossDomainOwnable3\",\"version\":1},\"userdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"notice\":\"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\"}},\"kind\":\"user\",\"methods\":{\"isLocal()\":{\"notice\":\"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function.\"},\"transferOwnership(address,bool)\":{\"notice\":\"Allows for ownership to be transferred with specifying the locality.\"}},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable3.sol\":\"CrossDomainOwnable3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/CrossDomainOwnable3.sol\":{\"keccak256\":\"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7\",\"dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true},{"internalType":"bool","name":"isLocal","type":"bool","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"isLocal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bool","name":"_isLocal","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable3.sol":"CrossDomainOwnable3"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/CrossDomainOwnable3.sol":{"keccak256":"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd","urls":["bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7","dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":86785,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"isLocal","offset":20,"slot":"0","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"events":{"OwnershipTransferred(address,address,bool)":{"notice":"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event."}},"notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"events":{"OwnershipTransferred(address,address,bool)":{"params":{"isLocal":"Configures the `isLocal` contract variable.","newOwner":"The new owner of the contract.","previousOwner":"The previous owner of the contract."}}},"title":"CrossDomainOwnable3"},"id":139}
{"abi":[{"type":"function","name":"isLocal","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_isLocal","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"},{"name":"isLocal","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isLocal()":"0ee04629","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","transferOwnership(address,bool)":"b242e534"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"isLocal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLocal\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"params\":{\"isLocal\":\"Configures the `isLocal` contract variable.\",\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnership(address,bool)\":{\"params\":{\"_isLocal\":\"Configures the locality of the ownership.\",\"_owner\":\"The new owner of the contract.\"}}},\"title\":\"CrossDomainOwnable3\",\"version\":1},\"userdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"notice\":\"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\"}},\"kind\":\"user\",\"methods\":{\"isLocal()\":{\"notice\":\"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function.\"},\"transferOwnership(address,bool)\":{\"notice\":\"Allows for ownership to be transferred with specifying the locality.\"}},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable3.sol\":\"CrossDomainOwnable3\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/CrossDomainOwnable3.sol\":{\"keccak256\":\"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7\",\"dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0x27bd0275c4baf4e39360d47e51077dea7cc6027d6b97c2806c0bf64d75081d5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9a6564208b01101ea0687424b6812629afafa8f4035911b8647e969998e5d8e\",\"dweb:/ipfs/Qme5cqhBUkcJZqeRBd1SVdEP3sGGtaSFVpva4BbZFQBXsc\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893\",\"dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true},{"internalType":"bool","name":"isLocal","type":"bool","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"isLocal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bool","name":"_isLocal","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable3.sol":"CrossDomainOwnable3"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/CrossDomainOwnable3.sol":{"keccak256":"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd","urls":["bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7","dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0x27bd0275c4baf4e39360d47e51077dea7cc6027d6b97c2806c0bf64d75081d5b","urls":["bzz-raw://b9a6564208b01101ea0687424b6812629afafa8f4035911b8647e969998e5d8e","dweb:/ipfs/Qme5cqhBUkcJZqeRBd1SVdEP3sGGtaSFVpva4BbZFQBXsc"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f","urls":["bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893","dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":49473,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":91545,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"isLocal","offset":20,"slot":"0","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"events":{"OwnershipTransferred(address,address,bool)":{"notice":"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event."}},"notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"events":{"OwnershipTransferred(address,address,bool)":{"params":{"isLocal":"Configures the `isLocal` contract variable.","newOwner":"The new owner of the contract.","previousOwner":"The previous owner of the contract."}}},"title":"CrossDomainOwnable3"},"ast":{"absolutePath":"src/L2/CrossDomainOwnable3.sol","id":91644,"exportedSymbols":{"CrossDomainOwnable3":[91643],"L2CrossDomainMessenger":[92926],"Ownable":[49578],"Predeploys":[107708]},"nodeType":"SourceUnit","src":"32:2654:148","nodes":[{"id":91532,"nodeType":"PragmaDirective","src":"32:23:148","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":91534,"nodeType":"ImportDirective","src":"57:58:148","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":91644,"sourceUnit":107709,"symbolAliases":[{"foreign":{"id":91533,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"66:10:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91536,"nodeType":"ImportDirective","src":"116:75:148","nodes":[],"absolutePath":"src/L2/L2CrossDomainMessenger.sol","file":"src/L2/L2CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":91644,"sourceUnit":92927,"symbolAliases":[{"foreign":{"id":91535,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92926,"src":"125:22:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91538,"nodeType":"ImportDirective","src":"192:69:148","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":91644,"sourceUnit":49579,"symbolAliases":[{"foreign":{"id":91537,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49578,"src":"201:7:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91643,"nodeType":"ContractDefinition","src":"618:2067:148","nodes":[{"id":91545,"nodeType":"VariableDeclaration","src":"840:26:148","nodes":[],"constant":false,"documentation":{"id":91542,"nodeType":"StructuredDocumentation","src":"673:162:148","text":"@notice If true, the contract uses the cross domain _checkOwner function override.\n If false it uses the standard Ownable _checkOwner function."},"functionSelector":"0ee04629","mutability":"mutable","name":"isLocal","nameLocation":"852:7:148","scope":91643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91543,"name":"bool","nodeType":"ElementaryTypeName","src":"840:4:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":91544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"862:4:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":91554,"nodeType":"EventDefinition","src":"1249:98:148","nodes":[],"anonymous":false,"documentation":{"id":91546,"nodeType":"StructuredDocumentation","src":"873:371:148","text":"@notice Emits when ownership of the contract is transferred. Includes the\n isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\n @param previousOwner The previous owner of the contract.\n @param newOwner The new owner of the contract.\n @param isLocal Configures the `isLocal` contract variable."},"eventSelector":"7fdc2a4b6eb39ec3363d710d188620bd1e97b3c434161f187b4d0dc0544faa58","name":"OwnershipTransferred","nameLocation":"1255:20:148","parameters":{"id":91553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91548,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1292:13:148","nodeType":"VariableDeclaration","scope":91554,"src":"1276:29:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91547,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91550,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1323:8:148","nodeType":"VariableDeclaration","scope":91554,"src":"1307:24:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91549,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91552,"indexed":false,"mutability":"mutable","name":"isLocal","nameLocation":"1338:7:148","nodeType":"VariableDeclaration","scope":91554,"src":"1333:12:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91551,"name":"bool","nodeType":"ElementaryTypeName","src":"1333:4:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1275:71:148"}},{"id":91594,"nodeType":"FunctionDefinition","src":"1559:342:148","nodes":[],"body":{"id":91593,"nodeType":"Block","src":"1636:265:148","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91565,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91557,"src":"1654:6:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":91568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1672:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1664:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91566,"name":"address","nodeType":"ElementaryTypeName","src":"1664:7:148","typeDescriptions":{}}},"id":91569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1664:10:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1654:20:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a206e6577206f776e657220697320746865207a65726f2061646472657373","id":91571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1676:52:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_be4b0b25cc2355352f816852ea21b8f9b1cdcbc6e0dedd0c3fe6e6aa861b2f4f","typeString":"literal_string \"CrossDomainOwnable3: new owner is the zero address\""},"value":"CrossDomainOwnable3: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be4b0b25cc2355352f816852ea21b8f9b1cdcbc6e0dedd0c3fe6e6aa861b2f4f","typeString":"literal_string \"CrossDomainOwnable3: new owner is the zero address\""}],"id":91564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1646:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1646:83:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91573,"nodeType":"ExpressionStatement","src":"1646:83:148"},{"assignments":[91575],"declarations":[{"constant":false,"id":91575,"mutability":"mutable","name":"oldOwner","nameLocation":"1748:8:148","nodeType":"VariableDeclaration","scope":91593,"src":"1740:16:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91574,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":91578,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":91576,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49506,"src":"1759:5:148","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":91577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1759:7:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1740:26:148"},{"expression":{"arguments":[{"id":91580,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91557,"src":"1795:6:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":91579,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"1776:18:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":91581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1776:26:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91582,"nodeType":"ExpressionStatement","src":"1776:26:148"},{"expression":{"id":91585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":91583,"name":"isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91545,"src":"1812:7:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":91584,"name":"_isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91559,"src":"1822:8:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1812:18:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91586,"nodeType":"ExpressionStatement","src":"1812:18:148"},{"eventCall":{"arguments":[{"id":91588,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91575,"src":"1867:8:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91589,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91557,"src":"1877:6:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91590,"name":"_isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91559,"src":"1885:8:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":91587,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[91554,49479],"referencedDeclaration":91554,"src":"1846:20:148","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":91591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:48:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91592,"nodeType":"EmitStatement","src":"1841:53:148"}]},"documentation":{"id":91555,"nodeType":"StructuredDocumentation","src":"1353:201:148","text":"@notice Allows for ownership to be transferred with specifying the locality.\n @param _owner The new owner of the contract.\n @param _isLocal Configures the locality of the ownership."},"functionSelector":"b242e534","implemented":true,"kind":"function","modifiers":[{"id":91562,"kind":"modifierInvocation","modifierName":{"id":91561,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49497,"src":"1626:9:148"},"nodeType":"ModifierInvocation","src":"1626:9:148"}],"name":"transferOwnership","nameLocation":"1568:17:148","parameters":{"id":91560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91557,"mutability":"mutable","name":"_owner","nameLocation":"1594:6:148","nodeType":"VariableDeclaration","scope":91594,"src":"1586:14:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91556,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91559,"mutability":"mutable","name":"_isLocal","nameLocation":"1607:8:148","nodeType":"VariableDeclaration","scope":91594,"src":"1602:13:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91558,"name":"bool","nodeType":"ElementaryTypeName","src":"1602:4:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1585:31:148"},"returnParameters":{"id":91563,"nodeType":"ParameterList","parameters":[],"src":"1636:0:148"},"scope":91643,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91642,"nodeType":"FunctionDefinition","src":"2156:527:148","nodes":[],"body":{"id":91641,"nodeType":"Block","src":"2202:481:148","nodes":[],"statements":[{"condition":{"id":91599,"name":"isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91545,"src":"2216:7:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":91639,"nodeType":"Block","src":"2334:343:148","statements":[{"assignments":[91612],"declarations":[{"constant":false,"id":91612,"mutability":"mutable","name":"messenger","nameLocation":"2371:9:148","nodeType":"VariableDeclaration","scope":91639,"src":"2348:32:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"},"typeName":{"id":91611,"nodeType":"UserDefinedTypeName","pathNode":{"id":91610,"name":"L2CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":92926,"src":"2348:22:148"},"referencedDeclaration":92926,"src":"2348:22:148","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"visibility":"internal"}],"id":91617,"initialValue":{"arguments":[{"expression":{"id":91614,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"2406:10:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$107708_$","typeString":"type(library Predeploys)"}},"id":91615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":107298,"src":"2406:36:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":91613,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92926,"src":"2383:22:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2CrossDomainMessenger_$92926_$","typeString":"type(contract L2CrossDomainMessenger)"}},"id":91616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:60:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"nodeType":"VariableDeclarationStatement","src":"2348:95:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":91619,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2466:3:148","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2466:10:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":91623,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91612,"src":"2488:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}],"id":91622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2480:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91621,"name":"address","nodeType":"ElementaryTypeName","src":"2480:7:148","typeDescriptions":{}}},"id":91624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2480:18:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2466:32:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206d657373656e676572","id":91626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2500:50:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7bb06fddc1c0d80ca10e23ae2ae408a2315b4adc9714311ac28fc515a39266f","typeString":"literal_string \"CrossDomainOwnable3: caller is not the messenger\""},"value":"CrossDomainOwnable3: caller is not the messenger"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7bb06fddc1c0d80ca10e23ae2ae408a2315b4adc9714311ac28fc515a39266f","typeString":"literal_string \"CrossDomainOwnable3: caller is not the messenger\""}],"id":91618,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2458:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2458:93:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91628,"nodeType":"ExpressionStatement","src":"2458:93:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":91630,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49506,"src":"2574:5:148","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":91631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2574:7:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":91632,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91612,"src":"2585:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$92926","typeString":"contract L2CrossDomainMessenger"}},"id":91633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":112945,"src":"2585:30:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":91634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:32:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2574:43:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206f776e6572","id":91636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2619:46:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""},"value":"CrossDomainOwnable3: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""}],"id":91629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2566:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:100:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91638,"nodeType":"ExpressionStatement","src":"2566:100:148"}]},"id":91640,"nodeType":"IfStatement","src":"2212:465:148","trueBody":{"id":91609,"nodeType":"Block","src":"2225:103:148","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":91601,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49506,"src":"2247:5:148","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":91602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2247:7:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":91603,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2258:3:148","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2258:10:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2247:21:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206f776e6572","id":91606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2270:46:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""},"value":"CrossDomainOwnable3: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""}],"id":91600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2239:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:78:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91608,"nodeType":"ExpressionStatement","src":"2239:78:148"}]}}]},"baseFunctions":[49520],"documentation":{"id":91595,"nodeType":"StructuredDocumentation","src":"1907:244:148","text":"@notice Overrides the implementation of the `onlyOwner` modifier to check that the unaliased\n `xDomainMessageSender` is the owner of the contract. This value is set to the caller\n of the L1CrossDomainMessenger."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"2165:11:148","overrides":{"id":91597,"nodeType":"OverrideSpecifier","overrides":[],"src":"2193:8:148"},"parameters":{"id":91596,"nodeType":"ParameterList","parameters":[],"src":"2176:2:148"},"returnParameters":{"id":91598,"nodeType":"ParameterList","parameters":[],"src":"2202:0:148"},"scope":91643,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":91540,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":49578,"src":"659:7:148"},"id":91541,"nodeType":"InheritanceSpecifier","src":"659:7:148"}],"canonicalName":"CrossDomainOwnable3","contractDependencies":[],"contractKind":"contract","documentation":{"id":91539,"nodeType":"StructuredDocumentation","src":"263:355:148","text":"@title CrossDomainOwnable3\n @notice This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned\n by contracts on either L1 or L2. Note that this contract is meant to be used with\n systems that use the CrossDomainMessenger system. It will not work if the\n OptimismPortal is used directly."},"fullyImplemented":true,"linearizedBaseContracts":[91643,49578,53434],"name":"CrossDomainOwnable3","nameLocation":"636:19:148","scope":91644,"usedErrors":[]}],"license":"MIT"},"id":148}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"enableArbitraryContractDeployment","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDeployerAllowed","inputs":[{"name":"_deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistedDeployer","inputs":[{"name":"_deployer","type":"address","internalType":"address"},{"name":"_isWhitelisted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"whitelist","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistDisabled","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistStatusChanged","inputs":[{"name":"deployer","type":"address","indexed":false,"internalType":"address"},{"name":"whitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:178:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:178:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:209;;;;;;:::i;:::-;;:::i;:::-;;2592:513;;;;;;:::i;:::-;;:::i;2018:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;889:20;;;;;;;;;;;;1595:42:350;1583:55;;;1565:74;;1553:2;1538:18;889:20:178;1419:226:350;991:41:178;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1815:14:350;;1808:22;1790:41;;1778:2;1763:18;991:41:178;1650:187:350;3526:144:178;;;;;;:::i;:::-;;:::i;3200:138::-;;;:::i;2277:209::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;;;;;;;;;2378:20:::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;:37;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;2430:49;;2495:74:350;;;2585:18;;;2578:50;2430:49:178::1;::::0;2468:18:350;2430:49:178::1;;;;;;;2277:209:::0;;:::o;2592:513::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;1842:480:350;1823:108:178;2929:20:::1;::::0;::::1;2921:110;;;::::0;::::1;::::0;;2841:2:350;2921:110:178::1;::::0;::::1;2823:21:350::0;2880:2;2860:18;;;2853:30;2919:34;2899:18;;;2892:62;2990:34;2970:18;;;2963:62;3062:15;3041:19;;;3034:44;3095:19;;2921:110:178::1;2639:481:350::0;2921:110:178::1;3060:5;::::0;3047:27:::1;::::0;;3060:5:::1;::::0;;::::1;3360:34:350::0;;3430:15;;;3425:2;3410:18;;3403:43;3047:27:178::1;::::0;3272:18:350;3047:27:178::1;;;;;;;3084:5;:14:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2592:513::o;3526:144::-;3595:4;3619:5;;:19;:5;:19;;:43;;-1:-1:-1;3642:20:178;;;;;;;:9;:20;;;;;;;;3619:43;3611:52;3526:144;-1:-1:-1;;3526:144:178:o;3200:138::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;1842:480:350;1823:108:178;3297:5:::1;::::0;3279:24:::1;::::0;3297:5:::1;::::0;;::::1;1565:74:350::0;;3279:24:178::1;::::0;1553:2:350;1538:18;3279:24:178::1;;;;;;;3329:1;3313:18:::0;;;::::1;::::0;;3200:138::o;14:196:350:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:347::-;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;380:29;399:9;380:29;:::i;:::-;370:39;;459:2;448:9;444:18;431:32;506:5;499:13;492:21;485:5;482:32;472:60;;528:1;525;518:12;472:60;551:5;541:15;;;215:347;;;;;:::o;567:186::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;718:29;737:9;718:29;:::i;:::-;708:39;567:186;-1:-1:-1;;;567:186:350:o;758:656::-;870:4;899:2;928;917:9;910:21;960:6;954:13;1003:6;998:2;987:9;983:18;976:34;1028:1;1038:140;1052:6;1049:1;1046:13;1038:140;;;1147:14;;;1143:23;;1137:30;1113:17;;;1132:2;1109:26;1102:66;1067:10;;1038:140;;;1196:6;1193:1;1190:13;1187:91;;;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1187:91;-1:-1:-1;1330:2:350;1318:15;1335:66;1314:88;1299:104;;;;1405:2;1295:113;;758:656;-1:-1:-1;;;758:656:350:o","linkReferences":{}},"methodIdentifiers":{"enableArbitraryContractDeployment()":"bdc7b54f","isDeployerAllowed(address)":"b1540a01","owner()":"8da5cb5b","setOwner(address)":"13af4035","setWhitelistedDeployer(address,bool)":"08fd6322","version()":"54fd4d50","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"WhitelistDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"WhitelistStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"enableArbitraryContractDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"isDeployerAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isWhitelisted\",\"type\":\"bool\"}],\"name\":\"setWhitelistedDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeployed\":\"0x4200000000000000000000000000000000000002\",\"events\":{\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"Address of the new owner.\",\"oldOwner\":\"Address of the previous owner.\"}},\"WhitelistDisabled(address)\":{\"params\":{\"oldOwner\":\"Address of the final owner of the whitelist.\"}},\"WhitelistStatusChanged(address,bool)\":{\"params\":{\"deployer\":\"Address of the deployer.\",\"whitelisted\":\"Boolean indicating whether the deployer is whitelisted.\"}}},\"kind\":\"dev\",\"methods\":{\"isDeployerAllowed(address)\":{\"params\":{\"_deployer\":\"Address to check.\"},\"returns\":{\"_0\":\"Whether or not the address can deploy contracts.\"}},\"setOwner(address)\":{\"params\":{\"_owner\":\"Address of the new owner.\"}},\"setWhitelistedDeployer(address,bool)\":{\"params\":{\"_deployer\":\"Address to update permissions for.\",\"_isWhitelisted\":\"Whether or not the address is whitelisted.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"DeployerWhitelist\",\"version\":1},\"userdoc\":{\"events\":{\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of this contract changes.\"},\"WhitelistDisabled(address)\":{\"notice\":\"Emitted when the whitelist is disabled.\"},\"WhitelistStatusChanged(address,bool)\":{\"notice\":\"Emitted when the whitelist status of a deployer changes.\"}},\"kind\":\"user\",\"methods\":{\"enableArbitraryContractDeployment()\":{\"notice\":\"Permanently enables arbitrary contract deployment and deletes the owner.\"},\"isDeployerAllowed(address)\":{\"notice\":\"Checks whether an address is allowed to deploy contracts.\"},\"owner()\":{\"notice\":\"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled.\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of this contract.\"},\"setWhitelistedDeployer(address,bool)\":{\"notice\":\"Adds or removes an address from the deployment whitelist.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"whitelist(address)\":{\"notice\":\"Mapping of deployer addresses to boolean whitelist status.\"}},\"notice\":\"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/DeployerWhitelist.sol\":\"DeployerWhitelist\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/DeployerWhitelist.sol\":{\"keccak256\":\"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667\",\"dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false}],"type":"event","name":"WhitelistDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":false},{"internalType":"bool","name":"whitelisted","type":"bool","indexed":false}],"type":"event","name":"WhitelistStatusChanged","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableArbitraryContractDeployment"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployerAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistedDeployer"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"version":1},"userdoc":{"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/DeployerWhitelist.sol":"DeployerWhitelist"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/DeployerWhitelist.sol":{"keccak256":"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec","urls":["bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667","dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":98527,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":98532,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"whitelist","offset":0,"slot":"1","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"events":{"OwnerChanged(address,address)":{"notice":"Emitted when the owner of this contract changes."},"WhitelistDisabled(address)":{"notice":"Emitted when the whitelist is disabled."},"WhitelistStatusChanged(address,bool)":{"notice":"Emitted when the whitelist status of a deployer changes."}},"notice":"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely."},"devdoc":{"version":1,"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"events":{"OwnerChanged(address,address)":{"params":{"newOwner":"Address of the new owner.","oldOwner":"Address of the previous owner."}},"WhitelistDisabled(address)":{"params":{"oldOwner":"Address of the final owner of the whitelist."}},"WhitelistStatusChanged(address,bool)":{"params":{"deployer":"Address of the deployer.","whitelisted":"Boolean indicating whether the deployer is whitelisted."}}},"title":"DeployerWhitelist"},"id":178}
{"abi":[{"type":"function","name":"enableArbitraryContractDeployment","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDeployerAllowed","inputs":[{"name":"_deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistedDeployer","inputs":[{"name":"_deployer","type":"address","internalType":"address"},{"name":"_isWhitelisted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"whitelist","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistDisabled","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistStatusChanged","inputs":[{"name":"deployer","type":"address","indexed":false,"internalType":"address"},{"name":"whitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:190:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:190:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:209;;;;;;:::i;:::-;;:::i;:::-;;2592:513;;;;;;:::i;:::-;;:::i;2018:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;889:20;;;;;;;;;;;;1595:42:382;1583:55;;;1565:74;;1553:2;1538:18;889:20:190;1419:226:382;991:41:190;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1815:14:382;;1808:22;1790:41;;1778:2;1763:18;991:41:190;1650:187:382;3526:144:190;;;;;;:::i;:::-;;:::i;3200:138::-;;;:::i;2277:209::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:382;1823:108:190;;;2026:21:382;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:190;;;;;;;;;2378:20:::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;:37;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;2430:49;;2495:74:382;;;2585:18;;;2578:50;2430:49:190::1;::::0;2468:18:382;2430:49:190::1;;;;;;;2277:209:::0;;:::o;2592:513::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:382;1823:108:190;;;2026:21:382;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:190;1842:480:382;1823:108:190;2929:20:::1;::::0;::::1;2921:110;;;::::0;::::1;::::0;;2841:2:382;2921:110:190::1;::::0;::::1;2823:21:382::0;2880:2;2860:18;;;2853:30;2919:34;2899:18;;;2892:62;2990:34;2970:18;;;2963:62;3062:15;3041:19;;;3034:44;3095:19;;2921:110:190::1;2639:481:382::0;2921:110:190::1;3060:5;::::0;3047:27:::1;::::0;;3060:5:::1;::::0;;::::1;3360:34:382::0;;3430:15;;;3425:2;3410:18;;3403:43;3047:27:190::1;::::0;3272:18:382;3047:27:190::1;;;;;;;3084:5;:14:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2592:513::o;3526:144::-;3595:4;3619:5;;:19;:5;:19;;:43;;-1:-1:-1;3642:20:190;;;;;;;:9;:20;;;;;;;;3619:43;3611:52;3526:144;-1:-1:-1;;3526:144:190:o;3200:138::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:382;1823:108:190;;;2026:21:382;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:190;1842:480:382;1823:108:190;3297:5:::1;::::0;3279:24:::1;::::0;3297:5:::1;::::0;;::::1;1565:74:382::0;;3279:24:190::1;::::0;1553:2:382;1538:18;3279:24:190::1;;;;;;;3329:1;3313:18:::0;;;::::1;::::0;;3200:138::o;14:196:382:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:347::-;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;380:29;399:9;380:29;:::i;:::-;370:39;;459:2;448:9;444:18;431:32;506:5;499:13;492:21;485:5;482:32;472:60;;528:1;525;518:12;472:60;551:5;541:15;;;215:347;;;;;:::o;567:186::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;718:29;737:9;718:29;:::i;:::-;708:39;567:186;-1:-1:-1;;;567:186:382:o;758:656::-;870:4;899:2;928;917:9;910:21;960:6;954:13;1003:6;998:2;987:9;983:18;976:34;1028:1;1038:140;1052:6;1049:1;1046:13;1038:140;;;1147:14;;;1143:23;;1137:30;1113:17;;;1132:2;1109:26;1102:66;1067:10;;1038:140;;;1196:6;1193:1;1190:13;1187:91;;;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1187:91;-1:-1:-1;1330:2:382;1318:15;1335:66;1314:88;1299:104;;;;1405:2;1295:113;;758:656;-1:-1:-1;;;758:656:382:o","linkReferences":{}},"methodIdentifiers":{"enableArbitraryContractDeployment()":"bdc7b54f","isDeployerAllowed(address)":"b1540a01","owner()":"8da5cb5b","setOwner(address)":"13af4035","setWhitelistedDeployer(address,bool)":"08fd6322","version()":"54fd4d50","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"WhitelistDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"WhitelistStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"enableArbitraryContractDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"isDeployerAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isWhitelisted\",\"type\":\"bool\"}],\"name\":\"setWhitelistedDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeployed\":\"0x4200000000000000000000000000000000000002\",\"events\":{\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"Address of the new owner.\",\"oldOwner\":\"Address of the previous owner.\"}},\"WhitelistDisabled(address)\":{\"params\":{\"oldOwner\":\"Address of the final owner of the whitelist.\"}},\"WhitelistStatusChanged(address,bool)\":{\"params\":{\"deployer\":\"Address of the deployer.\",\"whitelisted\":\"Boolean indicating whether the deployer is whitelisted.\"}}},\"kind\":\"dev\",\"methods\":{\"isDeployerAllowed(address)\":{\"params\":{\"_deployer\":\"Address to check.\"},\"returns\":{\"_0\":\"Whether or not the address can deploy contracts.\"}},\"setOwner(address)\":{\"params\":{\"_owner\":\"Address of the new owner.\"}},\"setWhitelistedDeployer(address,bool)\":{\"params\":{\"_deployer\":\"Address to update permissions for.\",\"_isWhitelisted\":\"Whether or not the address is whitelisted.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"DeployerWhitelist\",\"version\":1},\"userdoc\":{\"events\":{\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of this contract changes.\"},\"WhitelistDisabled(address)\":{\"notice\":\"Emitted when the whitelist is disabled.\"},\"WhitelistStatusChanged(address,bool)\":{\"notice\":\"Emitted when the whitelist status of a deployer changes.\"}},\"kind\":\"user\",\"methods\":{\"enableArbitraryContractDeployment()\":{\"notice\":\"Permanently enables arbitrary contract deployment and deletes the owner.\"},\"isDeployerAllowed(address)\":{\"notice\":\"Checks whether an address is allowed to deploy contracts.\"},\"owner()\":{\"notice\":\"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled.\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of this contract.\"},\"setWhitelistedDeployer(address,bool)\":{\"notice\":\"Adds or removes an address from the deployment whitelist.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"whitelist(address)\":{\"notice\":\"Mapping of deployer addresses to boolean whitelist status.\"}},\"notice\":\"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/DeployerWhitelist.sol\":\"DeployerWhitelist\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/DeployerWhitelist.sol\":{\"keccak256\":\"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667\",\"dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false}],"type":"event","name":"WhitelistDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":false},{"internalType":"bool","name":"whitelisted","type":"bool","indexed":false}],"type":"event","name":"WhitelistStatusChanged","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableArbitraryContractDeployment"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployerAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistedDeployer"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"version":1},"userdoc":{"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/DeployerWhitelist.sol":"DeployerWhitelist"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/DeployerWhitelist.sol":{"keccak256":"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec","urls":["bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667","dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105171,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":105176,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"whitelist","offset":0,"slot":"1","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"events":{"OwnerChanged(address,address)":{"notice":"Emitted when the owner of this contract changes."},"WhitelistDisabled(address)":{"notice":"Emitted when the whitelist is disabled."},"WhitelistStatusChanged(address,bool)":{"notice":"Emitted when the whitelist status of a deployer changes."}},"notice":"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely."},"devdoc":{"version":1,"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"events":{"OwnerChanged(address,address)":{"params":{"newOwner":"Address of the new owner.","oldOwner":"Address of the previous owner."}},"WhitelistDisabled(address)":{"params":{"oldOwner":"Address of the final owner of the whitelist."}},"WhitelistStatusChanged(address,bool)":{"params":{"deployer":"Address of the deployer.","whitelisted":"Boolean indicating whether the deployer is whitelisted."}}},"title":"DeployerWhitelist"},"ast":{"absolutePath":"src/legacy/DeployerWhitelist.sol","id":105303,"exportedSymbols":{"DeployerWhitelist":[105302],"ISemver":[113621]},"nodeType":"SourceUnit","src":"32:3641:190","nodes":[{"id":105163,"nodeType":"PragmaDirective","src":"32:23:190","nodes":[],"literals":["solidity","0.8",".15"]},{"id":105165,"nodeType":"ImportDirective","src":"57:52:190","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":105303,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":105164,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105302,"nodeType":"ContractDefinition","src":"697:2975:190","nodes":[{"id":105171,"nodeType":"VariableDeclaration","src":"889:20:190","nodes":[],"constant":false,"documentation":{"id":105169,"nodeType":"StructuredDocumentation","src":"741:143:190","text":"@notice Address of the owner of this contract. Note that when this address is set to\n address(0), the whitelist is disabled."},"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"904:5:190","scope":105302,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105170,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":105176,"nodeType":"VariableDeclaration","src":"991:41:190","nodes":[],"constant":false,"documentation":{"id":105172,"nodeType":"StructuredDocumentation","src":"916:70:190","text":"@notice Mapping of deployer addresses to boolean whitelist status."},"functionSelector":"9b19251a","mutability":"mutable","name":"whitelist","nameLocation":"1023:9:190","scope":105302,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":105175,"keyType":{"id":105173,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"991:24:190","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":105174,"name":"bool","nodeType":"ElementaryTypeName","src":"1010:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":105183,"nodeType":"EventDefinition","src":"1209:55:190","nodes":[],"anonymous":false,"documentation":{"id":105177,"nodeType":"StructuredDocumentation","src":"1039:165:190","text":"@notice Emitted when the owner of this contract changes.\n @param oldOwner Address of the previous owner.\n @param newOwner Address of the new owner."},"eventSelector":"b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c","name":"OwnerChanged","nameLocation":"1215:12:190","parameters":{"id":105182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105179,"indexed":false,"mutability":"mutable","name":"oldOwner","nameLocation":"1236:8:190","nodeType":"VariableDeclaration","scope":105183,"src":"1228:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105178,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":105181,"indexed":false,"mutability":"mutable","name":"newOwner","nameLocation":"1254:8:190","nodeType":"VariableDeclaration","scope":105183,"src":"1246:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105180,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:36:190"}},{"id":105190,"nodeType":"EventDefinition","src":"1478:65:190","nodes":[],"anonymous":false,"documentation":{"id":105184,"nodeType":"StructuredDocumentation","src":"1270:203:190","text":"@notice Emitted when the whitelist status of a deployer changes.\n @param deployer Address of the deployer.\n @param whitelisted Boolean indicating whether the deployer is whitelisted."},"eventSelector":"8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d","name":"WhitelistStatusChanged","nameLocation":"1484:22:190","parameters":{"id":105189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105186,"indexed":false,"mutability":"mutable","name":"deployer","nameLocation":"1515:8:190","nodeType":"VariableDeclaration","scope":105190,"src":"1507:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105185,"name":"address","nodeType":"ElementaryTypeName","src":"1507:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":105188,"indexed":false,"mutability":"mutable","name":"whitelisted","nameLocation":"1530:11:190","nodeType":"VariableDeclaration","scope":105190,"src":"1525:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":105187,"name":"bool","nodeType":"ElementaryTypeName","src":"1525:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1506:36:190"}},{"id":105195,"nodeType":"EventDefinition","src":"1674:42:190","nodes":[],"anonymous":false,"documentation":{"id":105191,"nodeType":"StructuredDocumentation","src":"1549:120:190","text":"@notice Emitted when the whitelist is disabled.\n @param oldOwner Address of the final owner of the whitelist."},"eventSelector":"c0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd4","name":"WhitelistDisabled","nameLocation":"1680:17:190","parameters":{"id":105194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105193,"indexed":false,"mutability":"mutable","name":"oldOwner","nameLocation":"1706:8:190","nodeType":"VariableDeclaration","scope":105195,"src":"1698:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105192,"name":"address","nodeType":"ElementaryTypeName","src":"1698:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1697:18:190"}},{"id":105208,"nodeType":"ModifierDefinition","src":"1792:157:190","nodes":[],"body":{"id":105207,"nodeType":"Block","src":"1813:136:190","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":105202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":105199,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1831:3:190","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":105200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1831:10:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":105201,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"1845:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1831:19:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206f776e6572206f66207468697320636f6e7472616374","id":105203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1852:78:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_944140597ff5a30538e0744b8160db7f0679e9e0dbeb6b224521a395f9d3eb37","typeString":"literal_string \"DeployerWhitelist: function can only be called by the owner of this contract\""},"value":"DeployerWhitelist: function can only be called by the owner of this contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944140597ff5a30538e0744b8160db7f0679e9e0dbeb6b224521a395f9d3eb37","typeString":"literal_string \"DeployerWhitelist: function can only be called by the owner of this contract\""}],"id":105198,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1823:7:190","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":105204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1823:108:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105205,"nodeType":"ExpressionStatement","src":"1823:108:190"},{"id":105206,"nodeType":"PlaceholderStatement","src":"1941:1:190"}]},"documentation":{"id":105196,"nodeType":"StructuredDocumentation","src":"1722:65:190","text":"@notice Blocks functions to anyone except the contract owner."},"name":"onlyOwner","nameLocation":"1801:9:190","parameters":{"id":105197,"nodeType":"ParameterList","parameters":[],"src":"1810:2:190"},"virtual":false,"visibility":"internal"},{"id":105212,"nodeType":"VariableDeclaration","src":"2018:40:190","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":105209,"nodeType":"StructuredDocumentation","src":"1955:58:190","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2041:7:190","scope":105302,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105210,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:190","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":105211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:7:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":105234,"nodeType":"FunctionDefinition","src":"2277:209:190","nodes":[],"body":{"id":105233,"nodeType":"Block","src":"2368:118:190","nodes":[],"statements":[{"expression":{"id":105226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":105222,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105176,"src":"2378:9:190","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":105224,"indexExpression":{"id":105223,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105215,"src":"2388:9:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2378:20:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":105225,"name":"_isWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105217,"src":"2401:14:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2378:37:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":105227,"nodeType":"ExpressionStatement","src":"2378:37:190"},{"eventCall":{"arguments":[{"id":105229,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105215,"src":"2453:9:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":105230,"name":"_isWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105217,"src":"2464:14:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":105228,"name":"WhitelistStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105190,"src":"2430:22:190","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":105231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2430:49:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105232,"nodeType":"EmitStatement","src":"2425:54:190"}]},"documentation":{"id":105213,"nodeType":"StructuredDocumentation","src":"2065:207:190","text":"@notice Adds or removes an address from the deployment whitelist.\n @param _deployer Address to update permissions for.\n @param _isWhitelisted Whether or not the address is whitelisted."},"functionSelector":"08fd6322","implemented":true,"kind":"function","modifiers":[{"id":105220,"kind":"modifierInvocation","modifierName":{"id":105219,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":105208,"src":"2358:9:190"},"nodeType":"ModifierInvocation","src":"2358:9:190"}],"name":"setWhitelistedDeployer","nameLocation":"2286:22:190","parameters":{"id":105218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105215,"mutability":"mutable","name":"_deployer","nameLocation":"2317:9:190","nodeType":"VariableDeclaration","scope":105234,"src":"2309:17:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105214,"name":"address","nodeType":"ElementaryTypeName","src":"2309:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":105217,"mutability":"mutable","name":"_isWhitelisted","nameLocation":"2333:14:190","nodeType":"VariableDeclaration","scope":105234,"src":"2328:19:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":105216,"name":"bool","nodeType":"ElementaryTypeName","src":"2328:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2308:40:190"},"returnParameters":{"id":105221,"nodeType":"ParameterList","parameters":[],"src":"2368:0:190"},"scope":105302,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":105262,"nodeType":"FunctionDefinition","src":"2592:513:190","nodes":[],"body":{"id":105261,"nodeType":"Block","src":"2645:460:190","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":105248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":105243,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105237,"src":"2929:6:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":105246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2947:1:190","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":105245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2939:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105244,"name":"address","nodeType":"ElementaryTypeName","src":"2939:7:190","typeDescriptions":{}}},"id":105247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2939:10:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2929:20:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706c6f79657257686974656c6973743a2063616e206f6e6c792062652064697361626c65642076696120656e61626c65417262697472617279436f6e74726163744465706c6f796d656e74","id":105249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2951:79:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_6078aace64c07e9c98ebaccae80d05c653e2b929f6126e2db8574ccdff4a07cd","typeString":"literal_string \"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment\""},"value":"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6078aace64c07e9c98ebaccae80d05c653e2b929f6126e2db8574ccdff4a07cd","typeString":"literal_string \"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment\""}],"id":105242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2921:7:190","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":105250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:110:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105251,"nodeType":"ExpressionStatement","src":"2921:110:190"},{"eventCall":{"arguments":[{"id":105253,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"3060:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":105254,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105237,"src":"3067:6:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":105252,"name":"OwnerChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105183,"src":"3047:12:190","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":105255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3047:27:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105256,"nodeType":"EmitStatement","src":"3042:32:190"},{"expression":{"id":105259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":105257,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"3084:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":105258,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105237,"src":"3092:6:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3084:14:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":105260,"nodeType":"ExpressionStatement","src":"3084:14:190"}]},"documentation":{"id":105235,"nodeType":"StructuredDocumentation","src":"2492:95:190","text":"@notice Updates the owner of this contract.\n @param _owner Address of the new owner."},"functionSelector":"13af4035","implemented":true,"kind":"function","modifiers":[{"id":105240,"kind":"modifierInvocation","modifierName":{"id":105239,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":105208,"src":"2635:9:190"},"nodeType":"ModifierInvocation","src":"2635:9:190"}],"name":"setOwner","nameLocation":"2601:8:190","parameters":{"id":105238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105237,"mutability":"mutable","name":"_owner","nameLocation":"2618:6:190","nodeType":"VariableDeclaration","scope":105262,"src":"2610:14:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105236,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2609:16:190"},"returnParameters":{"id":105241,"nodeType":"ParameterList","parameters":[],"src":"2645:0:190"},"scope":105302,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":105280,"nodeType":"FunctionDefinition","src":"3200:138:190","nodes":[],"body":{"id":105279,"nodeType":"Block","src":"3264:74:190","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":105269,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"3297:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":105268,"name":"WhitelistDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105195,"src":"3279:17:190","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":105270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3279:24:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105271,"nodeType":"EmitStatement","src":"3274:29:190"},{"expression":{"id":105277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":105272,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"3313:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":105275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3329:1:190","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":105274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3321:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105273,"name":"address","nodeType":"ElementaryTypeName","src":"3321:7:190","typeDescriptions":{}}},"id":105276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3321:10:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3313:18:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":105278,"nodeType":"ExpressionStatement","src":"3313:18:190"}]},"documentation":{"id":105263,"nodeType":"StructuredDocumentation","src":"3111:84:190","text":"@notice Permanently enables arbitrary contract deployment and deletes the owner."},"functionSelector":"bdc7b54f","implemented":true,"kind":"function","modifiers":[{"id":105266,"kind":"modifierInvocation","modifierName":{"id":105265,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":105208,"src":"3254:9:190"},"nodeType":"ModifierInvocation","src":"3254:9:190"}],"name":"enableArbitraryContractDeployment","nameLocation":"3209:33:190","parameters":{"id":105264,"nodeType":"ParameterList","parameters":[],"src":"3242:2:190"},"returnParameters":{"id":105267,"nodeType":"ParameterList","parameters":[],"src":"3264:0:190"},"scope":105302,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":105301,"nodeType":"FunctionDefinition","src":"3526:144:190","nodes":[],"body":{"id":105300,"nodeType":"Block","src":"3601:69:190","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":105297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":105293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":105288,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105171,"src":"3619:5:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":105291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3636:1:190","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":105290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3628:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105289,"name":"address","nodeType":"ElementaryTypeName","src":"3628:7:190","typeDescriptions":{}}},"id":105292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3628:10:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3619:19:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":105294,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105176,"src":"3642:9:190","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":105296,"indexExpression":{"id":105295,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105283,"src":"3652:9:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3642:20:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3619:43:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":105298,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3618:45:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":105287,"id":105299,"nodeType":"Return","src":"3611:52:190"}]},"documentation":{"id":105281,"nodeType":"StructuredDocumentation","src":"3344:177:190","text":"@notice Checks whether an address is allowed to deploy contracts.\n @param _deployer Address to check.\n @return Whether or not the address can deploy contracts."},"functionSelector":"b1540a01","implemented":true,"kind":"function","modifiers":[],"name":"isDeployerAllowed","nameLocation":"3535:17:190","parameters":{"id":105284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105283,"mutability":"mutable","name":"_deployer","nameLocation":"3561:9:190","nodeType":"VariableDeclaration","scope":105301,"src":"3553:17:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105282,"name":"address","nodeType":"ElementaryTypeName","src":"3553:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3552:19:190"},"returnParameters":{"id":105287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105301,"src":"3595:4:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":105285,"name":"bool","nodeType":"ElementaryTypeName","src":"3595:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3594:6:190"},"scope":105302,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":105167,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"727:7:190"},"id":105168,"nodeType":"InheritanceSpecifier","src":"727:7:190"}],"canonicalName":"DeployerWhitelist","contractDependencies":[],"contractKind":"contract","documentation":{"id":105166,"nodeType":"StructuredDocumentation","src":"111:586:190","text":"@custom:legacy\n @custom:proxied\n @custom:predeployed 0x4200000000000000000000000000000000000002\n @title DeployerWhitelist\n @notice DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of\n addresses allowed to the Optimism network. The DeployerWhitelist has since been\n disabled, but the code is kept in state for the sake of full backwards compatibility.\n As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism\n system and could, in theory, be removed entirely."},"fullyImplemented":true,"linearizedBaseContracts":[105302,113621],"name":"DeployerWhitelist","nameLocation":"706:17:190","scope":105303,"usedErrors":[]}],"license":"MIT"},"id":190}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"id":63}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","id":54360,"exportedSymbols":{"ECDSA":[54122],"EIP712":[54359],"Strings":[53734]},"nodeType":"SourceUnit","src":"104:4403:65","nodes":[{"id":54207,"nodeType":"PragmaDirective","src":"104:23:65","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54208,"nodeType":"ImportDirective","src":"129:21:65","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":54360,"sourceUnit":54123,"symbolAliases":[],"unitAlias":""},{"id":54359,"nodeType":"ContractDefinition","src":"1295:3211:65","nodes":[{"id":54211,"nodeType":"VariableDeclaration","src":"1563:50:65","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1589:24:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1563:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":54213,"nodeType":"VariableDeclaration","src":"1619:42:65","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1645:16:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54212,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":54215,"nodeType":"VariableDeclaration","src":"1667:38:65","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1693:12:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54214,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":54217,"nodeType":"VariableDeclaration","src":"1712:38:65","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1738:12:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":54219,"nodeType":"VariableDeclaration","src":"1756:41:65","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1782:15:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":54221,"nodeType":"VariableDeclaration","src":"1803:36:65","nodes":[],"constant":false,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1829:10:65","scope":54359,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":54286,"nodeType":"FunctionDefinition","src":"2455:602:65","nodes":[],"body":{"id":54285,"nodeType":"Block","src":"2510:547:65","nodes":[],"statements":[{"assignments":[54230],"declarations":[{"constant":false,"id":54230,"mutability":"mutable","name":"hashedName","nameLocation":"2528:10:65","nodeType":"VariableDeclaration","scope":54285,"src":"2520:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2520:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54237,"initialValue":{"arguments":[{"arguments":[{"id":54234,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54224,"src":"2557:4:65","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":54233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2551:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":54232,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:65","typeDescriptions":{}}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2551:11:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54231,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2541:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:22:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2520:43:65"},{"assignments":[54239],"declarations":[{"constant":false,"id":54239,"mutability":"mutable","name":"hashedVersion","nameLocation":"2581:13:65","nodeType":"VariableDeclaration","scope":54285,"src":"2573:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54246,"initialValue":{"arguments":[{"arguments":[{"id":54243,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"2613:7:65","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":54242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":54241,"name":"bytes","nodeType":"ElementaryTypeName","src":"2607:5:65","typeDescriptions":{}}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:14:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54240,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2597:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2597:25:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:49:65"},{"assignments":[54248],"declarations":[{"constant":false,"id":54248,"mutability":"mutable","name":"typeHash","nameLocation":"2640:8:65","nodeType":"VariableDeclaration","scope":54285,"src":"2632:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2632:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54252,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":54250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2674:84:65","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":54249,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2651:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2651:117:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2632:136:65"},{"expression":{"id":54255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54253,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54217,"src":"2778:12:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54254,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54230,"src":"2793:10:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2778:25:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54256,"nodeType":"ExpressionStatement","src":"2778:25:65"},{"expression":{"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54257,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54219,"src":"2813:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54258,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54239,"src":"2831:13:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2813:31:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54260,"nodeType":"ExpressionStatement","src":"2813:31:65"},{"expression":{"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54261,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54213,"src":"2854:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":54262,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2873:5:65","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2873:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2854:32:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54265,"nodeType":"ExpressionStatement","src":"2854:32:65"},{"expression":{"id":54272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54266,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54211,"src":"2896:24:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54268,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54248,"src":"2945:8:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54269,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54230,"src":"2955:10:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54270,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54239,"src":"2967:13:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54267,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54342,"src":"2923:21:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":54271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2923:58:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2896:85:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54273,"nodeType":"ExpressionStatement","src":"2896:85:65"},{"expression":{"id":54279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54274,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"2991:12:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54277,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}],"id":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54275,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:65","typeDescriptions":{}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3006:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2991:28:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54280,"nodeType":"ExpressionStatement","src":"2991:28:65"},{"expression":{"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54281,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54221,"src":"3029:10:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54282,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54248,"src":"3042:8:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3029:21:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54284,"nodeType":"ExpressionStatement","src":"3029:21:65"}]},"documentation":{"id":54222,"nodeType":"StructuredDocumentation","src":"1891:559:65","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54224,"mutability":"mutable","name":"name","nameLocation":"2481:4:65","nodeType":"VariableDeclaration","scope":54286,"src":"2467:18:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54223,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54226,"mutability":"mutable","name":"version","nameLocation":"2501:7:65","nodeType":"VariableDeclaration","scope":54286,"src":"2487:21:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54225,"name":"string","nodeType":"ElementaryTypeName","src":"2487:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:43:65"},"returnParameters":{"id":54228,"nodeType":"ParameterList","parameters":[],"src":"2510:0:65"},"scope":54359,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54315,"nodeType":"FunctionDefinition","src":"3143:308:65","nodes":[],"body":{"id":54314,"nodeType":"Block","src":"3205:246:65","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54294,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3227:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}],"id":54293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54292,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:65","typeDescriptions":{}}},"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54296,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"3236:12:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3219:29:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54298,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3252:5:65","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3252:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54300,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54213,"src":"3269:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:33:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":54312,"nodeType":"Block","src":"3349:96:65","statements":[{"expression":{"arguments":[{"id":54307,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54221,"src":"3392:10:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54308,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54217,"src":"3404:12:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54309,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54219,"src":"3418:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54306,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54342,"src":"3370:21:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3370:64:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54291,"id":54311,"nodeType":"Return","src":"3363:71:65"}]},"id":54313,"nodeType":"IfStatement","src":"3215:230:65","trueBody":{"id":54305,"nodeType":"Block","src":"3287:56:65","statements":[{"expression":{"id":54303,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54211,"src":"3308:24:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54291,"id":54304,"nodeType":"Return","src":"3301:31:65"}]}}]},"documentation":{"id":54287,"nodeType":"StructuredDocumentation","src":"3063:75:65","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3152:18:65","parameters":{"id":54288,"nodeType":"ParameterList","parameters":[],"src":"3170:2:65"},"returnParameters":{"id":54291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54315,"src":"3196:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3196:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3195:9:65"},"scope":54359,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":54342,"nodeType":"FunctionDefinition","src":"3457:257:65","nodes":[],"body":{"id":54341,"nodeType":"Block","src":"3606:108:65","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":54329,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54317,"src":"3644:8:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54330,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"3654:8:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54331,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54321,"src":"3664:11:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54332,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3677:5:65","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3677:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":54336,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3700:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$54359","typeString":"contract EIP712"}],"id":54335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3692:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54334,"name":"address","nodeType":"ElementaryTypeName","src":"3692:7:65","typeDescriptions":{}}},"id":54337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3692:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54327,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3633:3:65","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3633:10:65","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3633:73:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54326,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3623:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:84:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54325,"id":54340,"nodeType":"Return","src":"3616:91:65"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3466:21:65","parameters":{"id":54322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54317,"mutability":"mutable","name":"typeHash","nameLocation":"3505:8:65","nodeType":"VariableDeclaration","scope":54342,"src":"3497:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3497:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54319,"mutability":"mutable","name":"nameHash","nameLocation":"3531:8:65","nodeType":"VariableDeclaration","scope":54342,"src":"3523:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3523:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54321,"mutability":"mutable","name":"versionHash","nameLocation":"3557:11:65","nodeType":"VariableDeclaration","scope":54342,"src":"3549:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3549:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3487:87:65"},"returnParameters":{"id":54325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54342,"src":"3597:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3597:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3596:9:65"},"scope":54359,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":54358,"nodeType":"FunctionDefinition","src":"4339:165:65","nodes":[],"body":{"id":54357,"nodeType":"Block","src":"4425:79:65","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54352,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54315,"src":"4464:18:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":54353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4464:20:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54354,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54345,"src":"4486:10:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54350,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54122,"src":"4442:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$54122_$","typeString":"type(library ECDSA)"}},"id":54351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":54121,"src":"4442:21:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":54355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4442:55:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54349,"id":54356,"nodeType":"Return","src":"4435:62:65"}]},"documentation":{"id":54343,"nodeType":"StructuredDocumentation","src":"3720:614:65","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4348:16:65","parameters":{"id":54346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54345,"mutability":"mutable","name":"structHash","nameLocation":"4373:10:65","nodeType":"VariableDeclaration","scope":54358,"src":"4365:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4364:20:65"},"returnParameters":{"id":54349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54358,"src":"4416:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4416:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4415:9:65"},"scope":54359,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":54209,"nodeType":"StructuredDocumentation","src":"152:1142:65","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"linearizedBaseContracts":[54359],"name":"EIP712","nameLocation":"1313:6:65","scope":54360,"usedErrors":[]}],"license":"MIT"},"id":65}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"id":5}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","id":1160,"exportedSymbols":{"ECDSA":[922],"EIP712":[1159],"Strings":[534]},"nodeType":"SourceUnit","src":"104:4403:5","nodes":[{"id":1007,"nodeType":"PragmaDirective","src":"104:23:5","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":1008,"nodeType":"ImportDirective","src":"129:21:5","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":1160,"sourceUnit":923,"symbolAliases":[],"unitAlias":""},{"id":1159,"nodeType":"ContractDefinition","src":"1295:3211:5","nodes":[{"id":1011,"nodeType":"VariableDeclaration","src":"1563:50:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1589:24:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1563:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1013,"nodeType":"VariableDeclaration","src":"1619:42:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1645:16:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1012,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":1015,"nodeType":"VariableDeclaration","src":"1667:38:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1693:12:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":1017,"nodeType":"VariableDeclaration","src":"1712:38:5","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1738:12:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1019,"nodeType":"VariableDeclaration","src":"1756:41:5","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1782:15:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1021,"nodeType":"VariableDeclaration","src":"1803:36:5","nodes":[],"constant":false,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1829:10:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1086,"nodeType":"FunctionDefinition","src":"2455:602:5","nodes":[],"body":{"id":1085,"nodeType":"Block","src":"2510:547:5","nodes":[],"statements":[{"assignments":[1030],"declarations":[{"constant":false,"id":1030,"mutability":"mutable","name":"hashedName","nameLocation":"2528:10:5","nodeType":"VariableDeclaration","scope":1085,"src":"2520:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2520:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1037,"initialValue":{"arguments":[{"arguments":[{"id":1034,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1024,"src":"2557:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2551:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1032,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:5","typeDescriptions":{}}},"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1031,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2541:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2520:43:5"},{"assignments":[1039],"declarations":[{"constant":false,"id":1039,"mutability":"mutable","name":"hashedVersion","nameLocation":"2581:13:5","nodeType":"VariableDeclaration","scope":1085,"src":"2573:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1046,"initialValue":{"arguments":[{"arguments":[{"id":1043,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1026,"src":"2613:7:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1041,"name":"bytes","nodeType":"ElementaryTypeName","src":"2607:5:5","typeDescriptions":{}}},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2597:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2597:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:49:5"},{"assignments":[1048],"declarations":[{"constant":false,"id":1048,"mutability":"mutable","name":"typeHash","nameLocation":"2640:8:5","nodeType":"VariableDeclaration","scope":1085,"src":"2632:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2632:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1052,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":1050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2674:84:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":1049,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2651:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2651:117:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2632:136:5"},{"expression":{"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1053,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"2778:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1054,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"2793:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2778:25:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1056,"nodeType":"ExpressionStatement","src":"2778:25:5"},{"expression":{"id":1059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1057,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"2813:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1058,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"2831:13:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2813:31:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1060,"nodeType":"ExpressionStatement","src":"2813:31:5"},{"expression":{"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1061,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"2854:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1062,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2873:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2879:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"2873:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2854:32:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1065,"nodeType":"ExpressionStatement","src":"2854:32:5"},{"expression":{"id":1072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1066,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"2896:24:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1068,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"2945:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1069,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"2955:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1070,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"2967:13:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1067,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"2923:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:58:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2896:85:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1073,"nodeType":"ExpressionStatement","src":"2896:85:5"},{"expression":{"id":1079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1074,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"2991:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1077,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1075,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:5","typeDescriptions":{}}},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2991:28:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1080,"nodeType":"ExpressionStatement","src":"2991:28:5"},{"expression":{"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1081,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"3029:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1082,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"3042:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3029:21:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1084,"nodeType":"ExpressionStatement","src":"3029:21:5"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1891:559:5","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1024,"mutability":"mutable","name":"name","nameLocation":"2481:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"2467:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1023,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1026,"mutability":"mutable","name":"version","nameLocation":"2501:7:5","nodeType":"VariableDeclaration","scope":1086,"src":"2487:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1025,"name":"string","nodeType":"ElementaryTypeName","src":"2487:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:43:5"},"returnParameters":{"id":1028,"nodeType":"ParameterList","parameters":[],"src":"2510:0:5"},"scope":1159,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1115,"nodeType":"FunctionDefinition","src":"3143:308:5","nodes":[],"body":{"id":1114,"nodeType":"Block","src":"3205:246:5","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1094,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3227:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1092,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:5","typeDescriptions":{}}},"id":1095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3219:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1096,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"3236:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3219:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1098,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3252:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"3252:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1100,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"3269:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:33:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1112,"nodeType":"Block","src":"3349:96:5","statements":[{"expression":{"arguments":[{"id":1107,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"3392:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1108,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"3404:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1109,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"3418:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1106,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"3370:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3370:64:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1091,"id":1111,"nodeType":"Return","src":"3363:71:5"}]},"id":1113,"nodeType":"IfStatement","src":"3215:230:5","trueBody":{"id":1105,"nodeType":"Block","src":"3287:56:5","statements":[{"expression":{"id":1103,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"3308:24:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1091,"id":1104,"nodeType":"Return","src":"3301:31:5"}]}}]},"documentation":{"id":1087,"nodeType":"StructuredDocumentation","src":"3063:75:5","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3152:18:5","parameters":{"id":1088,"nodeType":"ParameterList","parameters":[],"src":"3170:2:5"},"returnParameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1115,"src":"3196:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3196:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3195:9:5"},"scope":1159,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1142,"nodeType":"FunctionDefinition","src":"3457:257:5","nodes":[],"body":{"id":1141,"nodeType":"Block","src":"3606:108:5","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":1129,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1117,"src":"3644:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1130,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1119,"src":"3654:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1131,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"3664:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1132,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3677:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"3677:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1136,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3700:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3692:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"3692:7:5","typeDescriptions":{}}},"id":1137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3692:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3633:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3637:6:5","memberName":"encode","nodeType":"MemberAccess","src":"3633:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3623:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:84:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1125,"id":1140,"nodeType":"Return","src":"3616:91:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3466:21:5","parameters":{"id":1122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1117,"mutability":"mutable","name":"typeHash","nameLocation":"3505:8:5","nodeType":"VariableDeclaration","scope":1142,"src":"3497:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3497:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1119,"mutability":"mutable","name":"nameHash","nameLocation":"3531:8:5","nodeType":"VariableDeclaration","scope":1142,"src":"3523:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3523:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1121,"mutability":"mutable","name":"versionHash","nameLocation":"3557:11:5","nodeType":"VariableDeclaration","scope":1142,"src":"3549:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3549:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3487:87:5"},"returnParameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1142,"src":"3597:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3597:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3596:9:5"},"scope":1159,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":1158,"nodeType":"FunctionDefinition","src":"4339:165:5","nodes":[],"body":{"id":1157,"nodeType":"Block","src":"4425:79:5","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1152,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1115,"src":"4464:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4464:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1154,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"4486:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1150,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4442:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4448:15:5","memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":921,"src":"4442:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1149,"id":1156,"nodeType":"Return","src":"4435:62:5"}]},"documentation":{"id":1143,"nodeType":"StructuredDocumentation","src":"3720:614:5","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4348:16:5","parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"structHash","nameLocation":"4373:10:5","nodeType":"VariableDeclaration","scope":1158,"src":"4365:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4364:20:5"},"returnParameters":{"id":1149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1158,"src":"4416:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4416:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4415:9:5"},"scope":1159,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":1009,"nodeType":"StructuredDocumentation","src":"152:1142:5","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"linearizedBaseContracts":[1159],"name":"EIP712","nameLocation":"1313:6:5","scope":1160,"usedErrors":[]}],"license":"MIT"},"id":5}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:storage-size\":\"52\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":{\"keccak256\":\"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94\",\"dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":"EIP712Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":{"keccak256":"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc","urls":["bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94","dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47468,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_NAME","offset":0,"slot":"1","type":"t_bytes32"},{"astId":47470,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_VERSION","offset":0,"slot":"2","type":"t_bytes32"},{"astId":47608,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._"},"id":35}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:storage-size\":\"52\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":{\"keccak256\":\"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94\",\"dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":"EIP712Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":{"keccak256":"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc","urls":["bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94","dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":49268,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_NAME","offset":0,"slot":"1","type":"t_bytes32"},{"astId":49270,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_VERSION","offset":0,"slot":"2","type":"t_bytes32"},{"astId":49408,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol","id":49410,"exportedSymbols":{"AddressUpgradeable":[48603],"ECDSAUpgradeable":[49259],"EIP712Upgradeable":[49409],"Initializable":[47257],"StringsUpgradeable":[48871]},"nodeType":"SourceUnit","src":"104:4943:37","nodes":[{"id":49261,"nodeType":"PragmaDirective","src":"104:23:37","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49262,"nodeType":"ImportDirective","src":"129:32:37","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol","file":"./ECDSAUpgradeable.sol","nameLocation":"-1:-1:-1","scope":49410,"sourceUnit":49260,"symbolAliases":[],"unitAlias":""},{"id":49263,"nodeType":"ImportDirective","src":"162:45:37","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":49410,"sourceUnit":47258,"symbolAliases":[],"unitAlias":""},{"id":49409,"nodeType":"ContractDefinition","src":"1382:3664:37","nodes":[{"id":49268,"nodeType":"VariableDeclaration","src":"1486:28:37","nodes":[],"constant":false,"mutability":"mutable","name":"_HASHED_NAME","nameLocation":"1502:12:37","scope":49409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1486:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":49270,"nodeType":"VariableDeclaration","src":"1520:31:37","nodes":[],"constant":false,"mutability":"mutable","name":"_HASHED_VERSION","nameLocation":"1536:15:37","scope":49409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":49275,"nodeType":"VariableDeclaration","src":"1557:133:37","nodes":[],"constant":true,"mutability":"constant","name":"_TYPE_HASH","nameLocation":"1582:10:37","scope":49409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1557:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":49273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1605:84:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":49272,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1595:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1595:95:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":49291,"nodeType":"FunctionDefinition","src":"2306:147:37","nodes":[],"body":{"id":49290,"nodeType":"Block","src":"2398:55:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":49286,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49278,"src":"2432:4:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":49287,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49280,"src":"2438:7:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49285,"name":"__EIP712_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49327,"src":"2408:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":49288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2408:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49289,"nodeType":"ExpressionStatement","src":"2408:38:37"}]},"documentation":{"id":49276,"nodeType":"StructuredDocumentation","src":"1742:559:37","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"function","modifiers":[{"id":49283,"kind":"modifierInvocation","modifierName":{"id":49282,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"2381:16:37"},"nodeType":"ModifierInvocation","src":"2381:16:37"}],"name":"__EIP712_init","nameLocation":"2315:13:37","parameters":{"id":49281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49278,"mutability":"mutable","name":"name","nameLocation":"2343:4:37","nodeType":"VariableDeclaration","scope":49291,"src":"2329:18:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49277,"name":"string","nodeType":"ElementaryTypeName","src":"2329:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":49280,"mutability":"mutable","name":"version","nameLocation":"2363:7:37","nodeType":"VariableDeclaration","scope":49291,"src":"2349:21:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49279,"name":"string","nodeType":"ElementaryTypeName","src":"2349:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2328:43:37"},"returnParameters":{"id":49284,"nodeType":"ParameterList","parameters":[],"src":"2398:0:37"},"scope":49409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49327,"nodeType":"FunctionDefinition","src":"2459:297:37","nodes":[],"body":{"id":49326,"nodeType":"Block","src":"2561:195:37","nodes":[],"statements":[{"assignments":[49301],"declarations":[{"constant":false,"id":49301,"mutability":"mutable","name":"hashedName","nameLocation":"2579:10:37","nodeType":"VariableDeclaration","scope":49326,"src":"2571:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2571:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49308,"initialValue":{"arguments":[{"arguments":[{"id":49305,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49293,"src":"2608:4:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2602:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":49303,"name":"bytes","nodeType":"ElementaryTypeName","src":"2602:5:37","typeDescriptions":{}}},"id":49306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2602:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49302,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2592:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2592:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2571:43:37"},{"assignments":[49310],"declarations":[{"constant":false,"id":49310,"mutability":"mutable","name":"hashedVersion","nameLocation":"2632:13:37","nodeType":"VariableDeclaration","scope":49326,"src":"2624:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49317,"initialValue":{"arguments":[{"arguments":[{"id":49314,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49295,"src":"2664:7:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2658:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":49312,"name":"bytes","nodeType":"ElementaryTypeName","src":"2658:5:37","typeDescriptions":{}}},"id":49315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2658:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49311,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2648:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2648:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2624:49:37"},{"expression":{"id":49320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49318,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49268,"src":"2683:12:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49319,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49301,"src":"2698:10:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2683:25:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":49321,"nodeType":"ExpressionStatement","src":"2683:25:37"},{"expression":{"id":49324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49322,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49270,"src":"2718:15:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49323,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49310,"src":"2736:13:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2718:31:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":49325,"nodeType":"ExpressionStatement","src":"2718:31:37"}]},"implemented":true,"kind":"function","modifiers":[{"id":49298,"kind":"modifierInvocation","modifierName":{"id":49297,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"2544:16:37"},"nodeType":"ModifierInvocation","src":"2544:16:37"}],"name":"__EIP712_init_unchained","nameLocation":"2468:23:37","parameters":{"id":49296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49293,"mutability":"mutable","name":"name","nameLocation":"2506:4:37","nodeType":"VariableDeclaration","scope":49327,"src":"2492:18:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49292,"name":"string","nodeType":"ElementaryTypeName","src":"2492:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":49295,"mutability":"mutable","name":"version","nameLocation":"2526:7:37","nodeType":"VariableDeclaration","scope":49327,"src":"2512:21:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49294,"name":"string","nodeType":"ElementaryTypeName","src":"2512:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2491:43:37"},"returnParameters":{"id":49299,"nodeType":"ParameterList","parameters":[],"src":"2561:0:37"},"scope":49409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49342,"nodeType":"FunctionDefinition","src":"2842:160:37","nodes":[],"body":{"id":49341,"nodeType":"Block","src":"2904:98:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":49334,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2943:10:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":49335,"name":"_EIP712NameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49394,"src":"2955:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":49336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2955:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":49337,"name":"_EIP712VersionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49403,"src":"2974:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":49338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2974:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49333,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49369,"src":"2921:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":49339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49332,"id":49340,"nodeType":"Return","src":"2914:81:37"}]},"documentation":{"id":49328,"nodeType":"StructuredDocumentation","src":"2762:75:37","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"2851:18:37","parameters":{"id":49329,"nodeType":"ParameterList","parameters":[],"src":"2869:2:37"},"returnParameters":{"id":49332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49342,"src":"2895:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2895:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2894:9:37"},"scope":49409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49369,"nodeType":"FunctionDefinition","src":"3008:257:37","nodes":[],"body":{"id":49368,"nodeType":"Block","src":"3157:108:37","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49356,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49344,"src":"3195:8:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49357,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49346,"src":"3205:8:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49358,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49348,"src":"3215:11:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":49359,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3228:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":49360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3228:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":49363,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3251:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712Upgradeable_$49409","typeString":"contract EIP712Upgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712Upgradeable_$49409","typeString":"contract EIP712Upgradeable"}],"id":49362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3243:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49361,"name":"address","nodeType":"ElementaryTypeName","src":"3243:7:37","typeDescriptions":{}}},"id":49364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3243:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3184:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3184:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3184:73:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49353,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3174:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3174:84:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49352,"id":49367,"nodeType":"Return","src":"3167:91:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3017:21:37","parameters":{"id":49349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49344,"mutability":"mutable","name":"typeHash","nameLocation":"3056:8:37","nodeType":"VariableDeclaration","scope":49369,"src":"3048:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3048:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49346,"mutability":"mutable","name":"nameHash","nameLocation":"3082:8:37","nodeType":"VariableDeclaration","scope":49369,"src":"3074:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3074:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49348,"mutability":"mutable","name":"versionHash","nameLocation":"3108:11:37","nodeType":"VariableDeclaration","scope":49369,"src":"3100:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3100:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3038:87:37"},"returnParameters":{"id":49352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49369,"src":"3148:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3148:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3147:9:37"},"scope":49409,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":49385,"nodeType":"FunctionDefinition","src":"3890:176:37","nodes":[],"body":{"id":49384,"nodeType":"Block","src":"3976:90:37","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":49379,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49342,"src":"4026:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":49380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4026:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49381,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49372,"src":"4048:10:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":49377,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49259,"src":"3993:16:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSAUpgradeable_$49259_$","typeString":"type(library ECDSAUpgradeable)"}},"id":49378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":49258,"src":"3993:32:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":49382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3993:66:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49376,"id":49383,"nodeType":"Return","src":"3986:73:37"}]},"documentation":{"id":49370,"nodeType":"StructuredDocumentation","src":"3271:614:37","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"3899:16:37","parameters":{"id":49373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49372,"mutability":"mutable","name":"structHash","nameLocation":"3924:10:37","nodeType":"VariableDeclaration","scope":49385,"src":"3916:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3916:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3915:20:37"},"returnParameters":{"id":49376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49385,"src":"3967:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3967:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3966:9:37"},"scope":49409,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":49394,"nodeType":"FunctionDefinition","src":"4302:103:37","nodes":[],"body":{"id":49393,"nodeType":"Block","src":"4369:36:37","nodes":[],"statements":[{"expression":{"id":49391,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49268,"src":"4386:12:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49390,"id":49392,"nodeType":"Return","src":"4379:19:37"}]},"documentation":{"id":49386,"nodeType":"StructuredDocumentation","src":"4072:225:37","text":" @dev The hash of the name parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."},"implemented":true,"kind":"function","modifiers":[],"name":"_EIP712NameHash","nameLocation":"4311:15:37","parameters":{"id":49387,"nodeType":"ParameterList","parameters":[],"src":"4326:2:37"},"returnParameters":{"id":49390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49394,"src":"4360:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4360:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4359:9:37"},"scope":49409,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":49403,"nodeType":"FunctionDefinition","src":"4644:109:37","nodes":[],"body":{"id":49402,"nodeType":"Block","src":"4714:39:37","nodes":[],"statements":[{"expression":{"id":49400,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49270,"src":"4731:15:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49399,"id":49401,"nodeType":"Return","src":"4724:22:37"}]},"documentation":{"id":49395,"nodeType":"StructuredDocumentation","src":"4411:228:37","text":" @dev The hash of the version parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."},"implemented":true,"kind":"function","modifiers":[],"name":"_EIP712VersionHash","nameLocation":"4653:18:37","parameters":{"id":49396,"nodeType":"ParameterList","parameters":[],"src":"4671:2:37"},"returnParameters":{"id":49399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49403,"src":"4705:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4705:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4704:9:37"},"scope":49409,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":49408,"nodeType":"VariableDeclaration","src":"5018:25:37","nodes":[],"constant":false,"documentation":{"id":49404,"nodeType":"StructuredDocumentation","src":"4759:254:37","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"5038:5:37","scope":49409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":49405,"name":"uint256","nodeType":"ElementaryTypeName","src":"5018:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49407,"length":{"hexValue":"3530","id":49406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5026:2:37","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"5018:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":49265,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"1421:13:37"},"id":49266,"nodeType":"InheritanceSpecifier","src":"1421:13:37"}],"canonicalName":"EIP712Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":49264,"nodeType":"StructuredDocumentation","src":"209:1172:37","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._\n @custom:storage-size 52"},"fullyImplemented":true,"linearizedBaseContracts":[49409,47257],"name":"EIP712Upgradeable","nameLocation":"1400:17:37","scope":49410,"usedErrors":[]}],"license":"MIT"},"id":37}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":"IERC20Permit"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}}},"id":49}
{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":"IERC20Permit"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","id":51440,"exportedSymbols":{"IERC20Permit":[51439]},"nodeType":"SourceUnit","src":"114:2138:51","nodes":[{"id":51405,"nodeType":"PragmaDirective","src":"114:23:51","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51439,"nodeType":"ContractDefinition","src":"620:1631:51","nodes":[{"id":51424,"nodeType":"FunctionDefinition","src":"1446:183:51","nodes":[],"documentation":{"id":51407,"nodeType":"StructuredDocumentation","src":"649:792:51","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:51","parameters":{"id":51422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51409,"mutability":"mutable","name":"owner","nameLocation":"1479:5:51","nodeType":"VariableDeclaration","scope":51424,"src":"1471:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51408,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51411,"mutability":"mutable","name":"spender","nameLocation":"1502:7:51","nodeType":"VariableDeclaration","scope":51424,"src":"1494:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51410,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51413,"mutability":"mutable","name":"value","nameLocation":"1527:5:51","nodeType":"VariableDeclaration","scope":51424,"src":"1519:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51415,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:51","nodeType":"VariableDeclaration","scope":51424,"src":"1542:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51417,"mutability":"mutable","name":"v","nameLocation":"1574:1:51","nodeType":"VariableDeclaration","scope":51424,"src":"1568:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51416,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":51419,"mutability":"mutable","name":"r","nameLocation":"1593:1:51","nodeType":"VariableDeclaration","scope":51424,"src":"1585:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":51421,"mutability":"mutable","name":"s","nameLocation":"1612:1:51","nodeType":"VariableDeclaration","scope":51424,"src":"1604:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:51"},"returnParameters":{"id":51423,"nodeType":"ParameterList","parameters":[],"src":"1628:0:51"},"scope":51439,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51432,"nodeType":"FunctionDefinition","src":"1934:63:51","nodes":[],"documentation":{"id":51425,"nodeType":"StructuredDocumentation","src":"1635:294:51","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:51","parameters":{"id":51428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51427,"mutability":"mutable","name":"owner","nameLocation":"1958:5:51","nodeType":"VariableDeclaration","scope":51432,"src":"1950:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51426,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:51"},"returnParameters":{"id":51431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51432,"src":"1988:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51429,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:51"},"scope":51439,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51438,"nodeType":"FunctionDefinition","src":"2189:60:51","nodes":[],"documentation":{"id":51433,"nodeType":"StructuredDocumentation","src":"2003:128:51","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:51","parameters":{"id":51434,"nodeType":"ParameterList","parameters":[],"src":"2214:2:51"},"returnParameters":{"id":51437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51438,"src":"2240:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:51"},"scope":51439,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":51406,"nodeType":"StructuredDocumentation","src":"139:480:51","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"linearizedBaseContracts":[51439],"name":"IERC20Permit","nameLocation":"630:12:51","scope":51440,"usedErrors":[]}],"license":"MIT"},"id":51}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"id":64}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","id":54384,"exportedSymbols":{"ERC165":[54383],"IERC165":[54589]},"nodeType":"SourceUnit","src":"99:888:66","nodes":[{"id":54361,"nodeType":"PragmaDirective","src":"99:23:66","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54362,"nodeType":"ImportDirective","src":"124:23:66","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":54384,"sourceUnit":54590,"symbolAliases":[],"unitAlias":""},{"id":54383,"nodeType":"ContractDefinition","src":"726:260:66","nodes":[{"id":54382,"nodeType":"FunctionDefinition","src":"829:155:66","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"920:64:66","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54374,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"937:11:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":54376,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54589,"src":"957:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$54589_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$54589_$","typeString":"type(contract IERC165)"}],"id":54375,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:66","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$54589","typeString":"type(contract IERC165)"}},"id":54378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54373,"id":54380,"nodeType":"Return","src":"930:47:66"}]},"baseFunctions":[54588],"documentation":{"id":54366,"nodeType":"StructuredDocumentation","src":"768:56:66","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:66","overrides":{"id":54370,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:66"},"parameters":{"id":54369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54368,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:66","nodeType":"VariableDeclaration","scope":54382,"src":"856:18:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54367,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:66"},"returnParameters":{"id":54373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54382,"src":"914:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54371,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:66"},"scope":54383,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":54364,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":54589,"src":"754:7:66"},"id":54365,"nodeType":"InheritanceSpecifier","src":"754:7:66"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":54363,"nodeType":"StructuredDocumentation","src":"149:576:66","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"linearizedBaseContracts":[54383,54589],"name":"ERC165","nameLocation":"744:6:66","scope":54384,"usedErrors":[]}],"license":"MIT"},"id":66}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:4414:65;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":"ERC165Checker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases."},"id":65}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:67:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:4414:67;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:67:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":"ERC165Checker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","id":54578,"exportedSymbols":{"ERC165Checker":[54577],"IERC165":[54589]},"nodeType":"SourceUnit","src":"121:4743:67","nodes":[{"id":54385,"nodeType":"PragmaDirective","src":"121:23:67","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54386,"nodeType":"ImportDirective","src":"146:23:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":54578,"sourceUnit":54590,"symbolAliases":[],"unitAlias":""},{"id":54577,"nodeType":"ContractDefinition","src":"449:4414:67","nodes":[{"id":54390,"nodeType":"VariableDeclaration","src":"551:58:67","nodes":[],"constant":true,"mutability":"constant","name":"_INTERFACE_ID_INVALID","nameLocation":"575:21:67","scope":54577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54388,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30786666666666666666","id":54389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"599:10:67","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"private"},{"id":54413,"nodeType":"FunctionDefinition","src":"704:411:67","nodes":[],"body":{"id":54412,"nodeType":"Block","src":"774:341:67","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54399,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54393,"src":"1000:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":54401,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54589,"src":"1014:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$54589_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$54589_$","typeString":"type(contract IERC165)"}],"id":54400,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1009:4:67","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1009:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$54589","typeString":"type(contract IERC165)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1009:25:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54398,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54576,"src":"975:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"975:60:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1051:57:67","subExpression":{"arguments":[{"id":54406,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54393,"src":"1077:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54407,"name":"_INTERFACE_ID_INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54390,"src":"1086:21:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54405,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54576,"src":"1052:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":54408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1052:56:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"975:133:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54397,"id":54411,"nodeType":"Return","src":"956:152:67"}]},"documentation":{"id":54391,"nodeType":"StructuredDocumentation","src":"616:83:67","text":" @dev Returns true if `account` supports the {IERC165} interface,"},"implemented":true,"kind":"function","modifiers":[],"name":"supportsERC165","nameLocation":"713:14:67","parameters":{"id":54394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54393,"mutability":"mutable","name":"account","nameLocation":"736:7:67","nodeType":"VariableDeclaration","scope":54413,"src":"728:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54392,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"727:17:67"},"returnParameters":{"id":54397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54413,"src":"768:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54395,"name":"bool","nodeType":"ElementaryTypeName","src":"768:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"767:6:67"},"scope":54577,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":54433,"nodeType":"FunctionDefinition","src":"1333:274:67","nodes":[],"body":{"id":54432,"nodeType":"Block","src":"1426:181:67","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54424,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54416,"src":"1542:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54423,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54413,"src":"1527:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":54425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":54427,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54416,"src":"1579:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54428,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54418,"src":"1588:11:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54426,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54576,"src":"1554:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1554:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1527:73:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54422,"id":54431,"nodeType":"Return","src":"1520:80:67"}]},"documentation":{"id":54414,"nodeType":"StructuredDocumentation","src":"1121:207:67","text":" @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}."},"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1342:17:67","parameters":{"id":54419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54416,"mutability":"mutable","name":"account","nameLocation":"1368:7:67","nodeType":"VariableDeclaration","scope":54433,"src":"1360:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54415,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54418,"mutability":"mutable","name":"interfaceId","nameLocation":"1384:11:67","nodeType":"VariableDeclaration","scope":54433,"src":"1377:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54417,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1377:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1359:37:67"},"returnParameters":{"id":54422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54433,"src":"1420:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54420,"name":"bool","nodeType":"ElementaryTypeName","src":"1420:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1419:6:67"},"scope":54577,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":54489,"nodeType":"FunctionDefinition","src":"1992:697:67","nodes":[],"body":{"id":54488,"nodeType":"Block","src":"2137:552:67","nodes":[],"statements":[{"assignments":[54449],"declarations":[{"constant":false,"id":54449,"mutability":"mutable","name":"interfaceIdsSupported","nameLocation":"2260:21:67","nodeType":"VariableDeclaration","scope":54488,"src":"2246:35:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":54447,"name":"bool","nodeType":"ElementaryTypeName","src":"2246:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54448,"nodeType":"ArrayTypeName","src":"2246:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":54456,"initialValue":{"arguments":[{"expression":{"id":54453,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54439,"src":"2295:12:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2295:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2284:10:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":54450,"name":"bool","nodeType":"ElementaryTypeName","src":"2288:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54451,"nodeType":"ArrayTypeName","src":"2288:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2284:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2246:69:67"},{"condition":{"arguments":[{"id":54458,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54436,"src":"2387:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54457,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54413,"src":"2372:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54485,"nodeType":"IfStatement","src":"2368:276:67","trueBody":{"id":54484,"nodeType":"Block","src":"2397:247:67","statements":[{"body":{"id":54482,"nodeType":"Block","src":"2524:110:67","statements":[{"expression":{"id":54480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54471,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54449,"src":"2542:21:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":54473,"indexExpression":{"id":54472,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"2564:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2542:24:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54475,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54436,"src":"2594:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":54476,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54439,"src":"2603:12:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54478,"indexExpression":{"id":54477,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"2616:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2603:15:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54474,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54576,"src":"2569:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":54479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2542:77:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54481,"nodeType":"ExpressionStatement","src":"2542:77:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"2494:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54465,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54439,"src":"2498:12:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2498:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:23:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54483,"initializationExpression":{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"i","nameLocation":"2487:1:67","nodeType":"VariableDeclaration","scope":54483,"src":"2479:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54460,"name":"uint256","nodeType":"ElementaryTypeName","src":"2479:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54463,"initialValue":{"hexValue":"30","id":54462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2491:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2479:13:67"},"loopExpression":{"expression":{"id":54469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2519:3:67","subExpression":{"id":54468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"2519:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54470,"nodeType":"ExpressionStatement","src":"2519:3:67"},"nodeType":"ForStatement","src":"2474:160:67"}]}},{"expression":{"id":54486,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54449,"src":"2661:21:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":54444,"id":54487,"nodeType":"Return","src":"2654:28:67"}]},"documentation":{"id":54434,"nodeType":"StructuredDocumentation","src":"1613:374:67","text":" @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"getSupportedInterfaces","nameLocation":"2001:22:67","parameters":{"id":54440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54436,"mutability":"mutable","name":"account","nameLocation":"2032:7:67","nodeType":"VariableDeclaration","scope":54489,"src":"2024:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54435,"name":"address","nodeType":"ElementaryTypeName","src":"2024:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54439,"mutability":"mutable","name":"interfaceIds","nameLocation":"2057:12:67","nodeType":"VariableDeclaration","scope":54489,"src":"2041:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":54437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2041:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":54438,"nodeType":"ArrayTypeName","src":"2041:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2023:47:67"},"returnParameters":{"id":54444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54489,"src":"2118:13:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":54441,"name":"bool","nodeType":"ElementaryTypeName","src":"2118:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54442,"nodeType":"ArrayTypeName","src":"2118:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2117:15:67"},"scope":54577,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":54535,"nodeType":"FunctionDefinition","src":"3024:536:67","nodes":[],"body":{"id":54534,"nodeType":"Block","src":"3131:429:67","nodes":[],"statements":[{"condition":{"id":54503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3187:24:67","subExpression":{"arguments":[{"id":54501,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54492,"src":"3203:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54500,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54413,"src":"3188:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":54502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3188:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54507,"nodeType":"IfStatement","src":"3183:67:67","trueBody":{"id":54506,"nodeType":"Block","src":"3213:37:67","statements":[{"expression":{"hexValue":"66616c7365","id":54504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3234:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":54499,"id":54505,"nodeType":"Return","src":"3227:12:67"}]}},{"body":{"id":54530,"nodeType":"Block","src":"3370:126:67","statements":[{"condition":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3388:51:67","subExpression":{"arguments":[{"id":54520,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54492,"src":"3414:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":54521,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54495,"src":"3423:12:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54523,"indexExpression":{"id":54522,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54509,"src":"3436:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3423:15:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54519,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54576,"src":"3389:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3389:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54529,"nodeType":"IfStatement","src":"3384:102:67","trueBody":{"id":54528,"nodeType":"Block","src":"3441:45:67","statements":[{"expression":{"hexValue":"66616c7365","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3466:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":54499,"id":54527,"nodeType":"Return","src":"3459:12:67"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54512,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54509,"src":"3340:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54513,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54495,"src":"3344:12:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3344:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:23:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54531,"initializationExpression":{"assignments":[54509],"declarations":[{"constant":false,"id":54509,"mutability":"mutable","name":"i","nameLocation":"3333:1:67","nodeType":"VariableDeclaration","scope":54531,"src":"3325:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54508,"name":"uint256","nodeType":"ElementaryTypeName","src":"3325:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54511,"initialValue":{"hexValue":"30","id":54510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3337:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3325:13:67"},"loopExpression":{"expression":{"id":54517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3365:3:67","subExpression":{"id":54516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54509,"src":"3365:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54518,"nodeType":"ExpressionStatement","src":"3365:3:67"},"nodeType":"ForStatement","src":"3320:176:67"},{"expression":{"hexValue":"74727565","id":54532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3549:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":54499,"id":54533,"nodeType":"Return","src":"3542:11:67"}]},"documentation":{"id":54490,"nodeType":"StructuredDocumentation","src":"2695:324:67","text":" @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}."},"implemented":true,"kind":"function","modifiers":[],"name":"supportsAllInterfaces","nameLocation":"3033:21:67","parameters":{"id":54496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54492,"mutability":"mutable","name":"account","nameLocation":"3063:7:67","nodeType":"VariableDeclaration","scope":54535,"src":"3055:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54491,"name":"address","nodeType":"ElementaryTypeName","src":"3055:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54495,"mutability":"mutable","name":"interfaceIds","nameLocation":"3088:12:67","nodeType":"VariableDeclaration","scope":54535,"src":"3072:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":54493,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3072:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":54494,"nodeType":"ArrayTypeName","src":"3072:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3054:47:67"},"returnParameters":{"id":54499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54535,"src":"3125:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54497,"name":"bool","nodeType":"ElementaryTypeName","src":"3125:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3124:6:67"},"scope":54577,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":54576,"nodeType":"FunctionDefinition","src":"4223:638:67","nodes":[],"body":{"id":54575,"nodeType":"Block","src":"4322:539:67","nodes":[],"statements":[{"assignments":[54546],"declarations":[{"constant":false,"id":54546,"mutability":"mutable","name":"encodedParams","nameLocation":"4369:13:67","nodeType":"VariableDeclaration","scope":54575,"src":"4356:26:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54545,"name":"bytes","nodeType":"ElementaryTypeName","src":"4356:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54554,"initialValue":{"arguments":[{"expression":{"expression":{"id":54549,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54589,"src":"4408:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$54589_$","typeString":"type(contract IERC165)"}},"id":54550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":54588,"src":"4408:25:67","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes4_$returns$_t_bool_$","typeString":"function IERC165.supportsInterface(bytes4) view returns (bool)"}},"id":54551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4408:34:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54552,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"4444:11:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":54547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4385:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4385:22:67","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4385:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4356:100:67"},{"assignments":[54556],"declarations":[{"constant":false,"id":54556,"mutability":"mutable","name":"success","nameLocation":"4503:7:67","nodeType":"VariableDeclaration","scope":54575,"src":"4498:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54555,"name":"bool","nodeType":"ElementaryTypeName","src":"4498:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54557,"nodeType":"VariableDeclarationStatement","src":"4498:12:67"},{"assignments":[54559],"declarations":[{"constant":false,"id":54559,"mutability":"mutable","name":"returnSize","nameLocation":"4528:10:67","nodeType":"VariableDeclaration","scope":54575,"src":"4520:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54558,"name":"uint256","nodeType":"ElementaryTypeName","src":"4520:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54560,"nodeType":"VariableDeclarationStatement","src":"4520:18:67"},{"assignments":[54562],"declarations":[{"constant":false,"id":54562,"mutability":"mutable","name":"returnValue","nameLocation":"4556:11:67","nodeType":"VariableDeclaration","scope":54575,"src":"4548:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54561,"name":"uint256","nodeType":"ElementaryTypeName","src":"4548:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54563,"nodeType":"VariableDeclarationStatement","src":"4548:19:67"},{"AST":{"nodeType":"YulBlock","src":"4586:203:67","statements":[{"nodeType":"YulAssignment","src":"4600:97:67","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4622:5:67","type":"","value":"30000"},{"name":"account","nodeType":"YulIdentifier","src":"4629:7:67"},{"arguments":[{"name":"encodedParams","nodeType":"YulIdentifier","src":"4642:13:67"},{"kind":"number","nodeType":"YulLiteral","src":"4657:4:67","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4638:3:67"},"nodeType":"YulFunctionCall","src":"4638:24:67"},{"arguments":[{"name":"encodedParams","nodeType":"YulIdentifier","src":"4670:13:67"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4664:5:67"},"nodeType":"YulFunctionCall","src":"4664:20:67"},{"kind":"number","nodeType":"YulLiteral","src":"4686:4:67","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4692:4:67","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4611:10:67"},"nodeType":"YulFunctionCall","src":"4611:86:67"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4600:7:67"}]},{"nodeType":"YulAssignment","src":"4710:30:67","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4724:14:67"},"nodeType":"YulFunctionCall","src":"4724:16:67"},"variableNames":[{"name":"returnSize","nodeType":"YulIdentifier","src":"4710:10:67"}]},{"nodeType":"YulAssignment","src":"4753:26:67","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4774:4:67","type":"","value":"0x00"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4768:5:67"},"nodeType":"YulFunctionCall","src":"4768:11:67"},"variableNames":[{"name":"returnValue","nodeType":"YulIdentifier","src":"4753:11:67"}]}]},"evmVersion":"london","externalReferences":[{"declaration":54538,"isOffset":false,"isSlot":false,"src":"4629:7:67","valueSize":1},{"declaration":54546,"isOffset":false,"isSlot":false,"src":"4642:13:67","valueSize":1},{"declaration":54546,"isOffset":false,"isSlot":false,"src":"4670:13:67","valueSize":1},{"declaration":54559,"isOffset":false,"isSlot":false,"src":"4710:10:67","valueSize":1},{"declaration":54562,"isOffset":false,"isSlot":false,"src":"4753:11:67","valueSize":1},{"declaration":54556,"isOffset":false,"isSlot":false,"src":"4600:7:67","valueSize":1}],"id":54564,"nodeType":"InlineAssembly","src":"4577:212:67"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54565,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54556,"src":"4806:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54566,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54559,"src":"4817:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783230","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4831:4:67","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"4817:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4806:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54570,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54562,"src":"4839:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4853:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4839:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4806:48:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54544,"id":54574,"nodeType":"Return","src":"4799:55:67"}]},"documentation":{"id":54536,"nodeType":"StructuredDocumentation","src":"3566:652:67","text":" @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Interface identification is specified in ERC-165."},"implemented":true,"kind":"function","modifiers":[],"name":"_supportsERC165Interface","nameLocation":"4232:24:67","parameters":{"id":54541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54538,"mutability":"mutable","name":"account","nameLocation":"4265:7:67","nodeType":"VariableDeclaration","scope":54576,"src":"4257:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54537,"name":"address","nodeType":"ElementaryTypeName","src":"4257:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54540,"mutability":"mutable","name":"interfaceId","nameLocation":"4281:11:67","nodeType":"VariableDeclaration","scope":54576,"src":"4274:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54539,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4274:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4256:37:67"},"returnParameters":{"id":54544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54576,"src":"4316:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54542,"name":"bool","nodeType":"ElementaryTypeName","src":"4316:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4315:6:67"},"scope":54577,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC165Checker","contractDependencies":[],"contractKind":"library","documentation":{"id":54387,"nodeType":"StructuredDocumentation","src":"171:277:67","text":" @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases."},"fullyImplemented":true,"linearizedBaseContracts":[54577],"name":"ERC165Checker","nameLocation":"457:13:67","scope":54578,"usedErrors":[]}],"license":"MIT"},"id":67}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":"ERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"id":36}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":"ERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":49452,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol","id":49454,"exportedSymbols":{"AddressUpgradeable":[48603],"ERC165Upgradeable":[49453],"IERC165Upgradeable":[49465],"Initializable":[47257]},"nodeType":"SourceUnit","src":"99:1421:38","nodes":[{"id":49411,"nodeType":"PragmaDirective","src":"99:23:38","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49412,"nodeType":"ImportDirective","src":"124:34:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","file":"./IERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":49454,"sourceUnit":49466,"symbolAliases":[],"unitAlias":""},{"id":49413,"nodeType":"ImportDirective","src":"159:45:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":49454,"sourceUnit":47258,"symbolAliases":[],"unitAlias":""},{"id":49453,"nodeType":"ContractDefinition","src":"783:736:38","nodes":[{"id":49424,"nodeType":"FunctionDefinition","src":"862:58:38","nodes":[],"body":{"id":49423,"nodeType":"Block","src":"913:7:38","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":49421,"kind":"modifierInvocation","modifierName":{"id":49420,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"896:16:38"},"nodeType":"ModifierInvocation","src":"896:16:38"}],"name":"__ERC165_init","nameLocation":"871:13:38","parameters":{"id":49419,"nodeType":"ParameterList","parameters":[],"src":"884:2:38"},"returnParameters":{"id":49422,"nodeType":"ParameterList","parameters":[],"src":"913:0:38"},"scope":49453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49430,"nodeType":"FunctionDefinition","src":"926:68:38","nodes":[],"body":{"id":49429,"nodeType":"Block","src":"987:7:38","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":49427,"kind":"modifierInvocation","modifierName":{"id":49426,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"970:16:38"},"nodeType":"ModifierInvocation","src":"970:16:38"}],"name":"__ERC165_init_unchained","nameLocation":"935:23:38","parameters":{"id":49425,"nodeType":"ParameterList","parameters":[],"src":"958:2:38"},"returnParameters":{"id":49428,"nodeType":"ParameterList","parameters":[],"src":"987:0:38"},"scope":49453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49447,"nodeType":"FunctionDefinition","src":"1060:166:38","nodes":[],"body":{"id":49446,"nodeType":"Block","src":"1151:75:38","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":49444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49439,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49433,"src":"1168:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":49441,"name":"IERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49465,"src":"1188:18:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$49465_$","typeString":"type(contract IERC165Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$49465_$","typeString":"type(contract IERC165Upgradeable)"}],"id":49440,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1183:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":49442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165Upgradeable_$49465","typeString":"type(contract IERC165Upgradeable)"}},"id":49443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1183:36:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1168:51:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49438,"id":49445,"nodeType":"Return","src":"1161:58:38"}]},"baseFunctions":[49464],"documentation":{"id":49431,"nodeType":"StructuredDocumentation","src":"999:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1069:17:38","overrides":{"id":49435,"nodeType":"OverrideSpecifier","overrides":[],"src":"1127:8:38"},"parameters":{"id":49434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49433,"mutability":"mutable","name":"interfaceId","nameLocation":"1094:11:38","nodeType":"VariableDeclaration","scope":49447,"src":"1087:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49432,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1087:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1086:20:38"},"returnParameters":{"id":49438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49447,"src":"1145:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49436,"name":"bool","nodeType":"ElementaryTypeName","src":"1145:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1144:6:38"},"scope":49453,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":49452,"nodeType":"VariableDeclaration","src":"1491:25:38","nodes":[],"constant":false,"documentation":{"id":49448,"nodeType":"StructuredDocumentation","src":"1232:254:38","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1511:5:38","scope":49453,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":49449,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49451,"length":{"hexValue":"3530","id":49450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1499:2:38","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1491:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":49415,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"822:13:38"},"id":49416,"nodeType":"InheritanceSpecifier","src":"822:13:38"},{"baseName":{"id":49417,"name":"IERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":49465,"src":"837:18:38"},"id":49418,"nodeType":"InheritanceSpecifier","src":"837:18:38"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":49414,"nodeType":"StructuredDocumentation","src":"206:576:38","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"linearizedBaseContracts":[49453,49465,47257],"name":"ERC165Upgradeable","nameLocation":"801:17:38","scope":49454,"usedErrors":[]}],"license":"MIT"},"id":38}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":"ERC20Burnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b","urls":["bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f","dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48077,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":48083,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":48085,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":48087,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":48089,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}}},"id":45}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":"ERC20Burnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b","urls":["bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f","dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49877,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":49883,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":49885,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":49887,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":49889,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":50570,"exportedSymbols":{"Context":[53434],"ERC20":[50447],"ERC20Burnable":[50569],"IERC20":[50525],"IERC20Metadata":[51231]},"nodeType":"SourceUnit","src":"124:1013:47","nodes":[{"id":50527,"nodeType":"PragmaDirective","src":"124:23:47","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50528,"nodeType":"ImportDirective","src":"149:22:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","nameLocation":"-1:-1:-1","scope":50570,"sourceUnit":50448,"symbolAliases":[],"unitAlias":""},{"id":50529,"nodeType":"ImportDirective","src":"172:36:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":50570,"sourceUnit":53435,"symbolAliases":[],"unitAlias":""},{"id":50569,"nodeType":"ContractDefinition","src":"419:717:47","nodes":[{"id":50547,"nodeType":"FunctionDefinition","src":"578:89:47","nodes":[],"body":{"id":50546,"nodeType":"Block","src":"623:44:47","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":50541,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53424,"src":"639:10:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":50542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"639:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50537,"src":"653:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50540,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50336,"src":"633:5:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"633:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50545,"nodeType":"ExpressionStatement","src":"633:27:47"}]},"documentation":{"id":50535,"nodeType":"StructuredDocumentation","src":"475:98:47","text":" @dev Destroys `amount` tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"587:4:47","parameters":{"id":50538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50537,"mutability":"mutable","name":"amount","nameLocation":"600:6:47","nodeType":"VariableDeclaration","scope":50547,"src":"592:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50536,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:16:47"},"returnParameters":{"id":50539,"nodeType":"ParameterList","parameters":[],"src":"623:0:47"},"scope":50569,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":50568,"nodeType":"FunctionDefinition","src":"973:161:47","nodes":[],"body":{"id":50567,"nodeType":"Block","src":"1039:95:47","nodes":[],"statements":[{"expression":{"arguments":[{"id":50556,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50550,"src":"1065:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":50557,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53424,"src":"1074:10:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":50558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50559,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50552,"src":"1088:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50555,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50424,"src":"1049:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":50560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1049:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50561,"nodeType":"ExpressionStatement","src":"1049:46:47"},{"expression":{"arguments":[{"id":50563,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50550,"src":"1111:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50564,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50552,"src":"1120:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50562,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50336,"src":"1105:5:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1105:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50566,"nodeType":"ExpressionStatement","src":"1105:22:47"}]},"documentation":{"id":50548,"nodeType":"StructuredDocumentation","src":"673:295:47","text":" @dev Destroys `amount` tokens from `account`, deducting from the caller's\n allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `amount`."},"functionSelector":"79cc6790","implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"982:8:47","parameters":{"id":50553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50550,"mutability":"mutable","name":"account","nameLocation":"999:7:47","nodeType":"VariableDeclaration","scope":50568,"src":"991:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50549,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50552,"mutability":"mutable","name":"amount","nameLocation":"1016:6:47","nodeType":"VariableDeclaration","scope":50568,"src":"1008:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50551,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:33:47"},"returnParameters":{"id":50554,"nodeType":"ParameterList","parameters":[],"src":"1039:0:47"},"scope":50569,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":50531,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":53434,"src":"454:7:47"},"id":50532,"nodeType":"InheritanceSpecifier","src":"454:7:47"},{"baseName":{"id":50533,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"463:5:47"},"id":50534,"nodeType":"InheritanceSpecifier","src":"463:5:47"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":50530,"nodeType":"StructuredDocumentation","src":"210:208:47","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":false,"linearizedBaseContracts":[50569,50447,51231,50525,53434],"name":"ERC20Burnable","nameLocation":"437:13:47","scope":50570,"usedErrors":[]}],"license":"MIT"},"id":47}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":\"ERC721BurnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97\",\"dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":"ERC721BurnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":{"keccak256":"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d","urls":["bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97","dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":45486,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":45488,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":45492,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":45496,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":45500,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":45506,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":46348,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":46532,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"ERC721 Token that can be burned (destroyed).","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"ERC721 Burnable Token"},"id":29}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":\"ERC721BurnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97\",\"dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":"ERC721BurnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":{"keccak256":"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d","urls":["bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97","dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":48644,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":49452,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":47286,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":47288,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":47292,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":47296,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":47300,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":47306,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":48148,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":48332,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"ERC721 Token that can be burned (destroyed).","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"ERC721 Burnable Token"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol","id":48334,"exportedSymbols":{"AddressUpgradeable":[48603],"ContextUpgradeable":[48645],"ERC165Upgradeable":[49453],"ERC721BurnableUpgradeable":[48333],"ERC721Upgradeable":[48149],"IERC165Upgradeable":[49465],"IERC721MetadataUpgradeable":[48360],"IERC721ReceiverUpgradeable":[48167],"IERC721Upgradeable":[48283],"Initializable":[47257],"StringsUpgradeable":[48871]},"nodeType":"SourceUnit","src":"126:1210:31","nodes":[{"id":48285,"nodeType":"PragmaDirective","src":"126:23:31","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48286,"nodeType":"ImportDirective","src":"151:34:31","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol","file":"../ERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":48334,"sourceUnit":48150,"symbolAliases":[],"unitAlias":""},{"id":48287,"nodeType":"ImportDirective","src":"186:47:31","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","file":"../../../utils/ContextUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48334,"sourceUnit":48646,"symbolAliases":[],"unitAlias":""},{"id":48288,"nodeType":"ImportDirective","src":"234:48:31","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":48334,"sourceUnit":47258,"symbolAliases":[],"unitAlias":""},{"id":48333,"nodeType":"ContractDefinition","src":"377:958:31","nodes":[{"id":48301,"nodeType":"FunctionDefinition","src":"483:66:31","nodes":[],"body":{"id":48300,"nodeType":"Block","src":"542:7:31","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":48298,"kind":"modifierInvocation","modifierName":{"id":48297,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"525:16:31"},"nodeType":"ModifierInvocation","src":"525:16:31"}],"name":"__ERC721Burnable_init","nameLocation":"492:21:31","parameters":{"id":48296,"nodeType":"ParameterList","parameters":[],"src":"513:2:31"},"returnParameters":{"id":48299,"nodeType":"ParameterList","parameters":[],"src":"542:0:31"},"scope":48333,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48307,"nodeType":"FunctionDefinition","src":"555:76:31","nodes":[],"body":{"id":48306,"nodeType":"Block","src":"624:7:31","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":48304,"kind":"modifierInvocation","modifierName":{"id":48303,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"607:16:31"},"nodeType":"ModifierInvocation","src":"607:16:31"}],"name":"__ERC721Burnable_init_unchained","nameLocation":"564:31:31","parameters":{"id":48302,"nodeType":"ParameterList","parameters":[],"src":"595:2:31"},"returnParameters":{"id":48305,"nodeType":"ParameterList","parameters":[],"src":"624:0:31"},"scope":48333,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48327,"nodeType":"FunctionDefinition","src":"803:239:31","nodes":[],"body":{"id":48326,"nodeType":"Block","src":"849:193:31","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48315,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48630,"src":"938:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48317,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48310,"src":"952:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48314,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47744,"src":"919:18:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":48318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"919:41:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":48319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"962:48:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":48313,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"911:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:100:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48321,"nodeType":"ExpressionStatement","src":"911:100:31"},{"expression":{"arguments":[{"id":48323,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48310,"src":"1027:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48322,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47914,"src":"1021:5:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":48324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1021:14:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48325,"nodeType":"ExpressionStatement","src":"1021:14:31"}]},"documentation":{"id":48308,"nodeType":"StructuredDocumentation","src":"636:162:31","text":" @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"812:4:31","parameters":{"id":48311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48310,"mutability":"mutable","name":"tokenId","nameLocation":"825:7:31","nodeType":"VariableDeclaration","scope":48327,"src":"817:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48309,"name":"uint256","nodeType":"ElementaryTypeName","src":"817:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"816:17:31"},"returnParameters":{"id":48312,"nodeType":"ParameterList","parameters":[],"src":"849:0:31"},"scope":48333,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48332,"nodeType":"VariableDeclaration","src":"1307:25:31","nodes":[],"constant":false,"documentation":{"id":48328,"nodeType":"StructuredDocumentation","src":"1048:254:31","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1327:5:31","scope":48333,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":48329,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48331,"length":{"hexValue":"3530","id":48330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1315:2:31","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1307:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":48290,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"424:13:31"},"id":48291,"nodeType":"InheritanceSpecifier","src":"424:13:31"},{"baseName":{"id":48292,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":48645,"src":"439:18:31"},"id":48293,"nodeType":"InheritanceSpecifier","src":"439:18:31"},{"baseName":{"id":48294,"name":"ERC721Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":48149,"src":"459:17:31"},"id":48295,"nodeType":"InheritanceSpecifier","src":"459:17:31"}],"canonicalName":"ERC721BurnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":48289,"nodeType":"StructuredDocumentation","src":"284:92:31","text":" @title ERC721 Burnable Token\n @dev ERC721 Token that can be burned (destroyed)."},"fullyImplemented":true,"linearizedBaseContracts":[48333,48149,48360,48283,49453,49465,48645,47257],"name":"ERC721BurnableUpgradeable","nameLocation":"395:25:31","scope":48334,"usedErrors":[]}],"license":"MIT"},"id":31}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"EIP712_DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consumeNonce","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"currentNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"name":"_name","type":"bytes","internalType":"bytes"},{"name":"_version","type":"bytes","internalType":"bytes"},{"name":"_chainid","type":"uint256","internalType":"uint256"},{"name":"_verifyingContract","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getProofStructHash","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506105bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:312:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:312:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1125:119;;;:::i;:::-;;;160:25:350;;;148:2;133:18;1125:119:312;;;;;;;1391:205;;;;;;:::i;:::-;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:350;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:312;;;;;;;;;;3687:19:350;;;;1519:69:312;;;1509:80;;;;;;1391:205;430:103;;471:62;430:103;;883:27;;;;;;2292:544;;;;;;:::i;:::-;;:::i;641:152::-;;698:95;641:152;;1125:119;1165:7;1220:14;;1165:7;;1220:14;;;:::i;:::-;;;;;1209:26;;;;;;160:25:350;;148:2;133:18;;14:177;1209:26:312;;;;;;;;;;;;;1199:37;;;;;;1184:53;;1125:119;:::o;2292:544::-;2657:16;;;;;;;;;;2675:19;;;;;;2622:103;;;698:95;2622:103;;;4188:25:350;;;;4229:18;;4222:34;;;;4272:18;;;4265:34;4315:18;;;4308:34;;;4391:42;4379:55;;4358:19;;;4351:84;2550:7:312;;;;4160:19:350;;2622:103:312;;;;;;;;;;;;2599:136;;;;;;2573:162;;2752:77;2785:15;2802:26;2821:6;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:350;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:312;;;;;;;;;;3687:19:350;;;;1519:69:312;;;1509:80;;;;;;1391:205;2802:26;8710:57:34;;4716:66:350;8710:57:34;;;4704:79:350;4799:11;;;4792:27;;;4835:12;;;4828:28;;;8674:7:34;;4872:12:350;;8710:57:34;;;;;;;;;;;;8700:68;;;;;;8693:75;;8581:194;;;;;2752:77:312;2745:84;2292:544;-1:-1:-1;;;;;;;2292:544:312:o;196:184:350:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:196;453:20;;513:42;502:54;;492:65;;482:93;;571:1;568;561:12;482:93;385:196;;;:::o;586:542::-;638:5;686:4;674:9;669:3;665:19;661:30;658:50;;;704:1;701;694:12;658:50;737:2;731:9;779:4;771:6;767:17;850:6;838:10;835:22;814:18;802:10;799:34;796:62;793:88;;;861:18;;:::i;:::-;897:2;890:22;930:6;-1:-1:-1;930:6:350;960:29;979:9;960:29;:::i;:::-;952:6;945:45;1051:2;1040:9;1036:18;1023:32;1018:2;1010:6;1006:15;999:57;1117:2;1106:9;1102:18;1089:32;1084:2;1076:6;1072:15;1065:57;;586:542;;;;:::o;1133:225::-;1217:6;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1309:43;1344:7;1333:9;1309:43;:::i;:::-;1299:53;1133:225;-1:-1:-1;;;1133:225:350:o;1545:777::-;1587:5;1640:3;1633:4;1625:6;1621:17;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:6;1681:20;1720:18;1757:2;1753;1750:10;1747:36;;;1763:18;;:::i;:::-;1897:2;1891:9;1959:4;1951:13;;1802:66;1947:22;;;1971:2;1943:31;1939:40;1927:53;;;1995:18;;;2015:22;;;1992:46;1989:72;;;2041:18;;:::i;:::-;2081:10;2077:2;2070:22;2116:2;2108:6;2101:18;2162:3;2155:4;2150:2;2142:6;2138:15;2134:26;2131:35;2128:55;;;2179:1;2176;2169:12;2128:55;2243:2;2236:4;2228:6;2224:17;2217:4;2209:6;2205:17;2192:54;2290:1;2283:4;2278:2;2270:6;2266:15;2262:26;2255:37;2310:6;2301:15;;;;;;1545:777;;;;:::o;2327:798::-;2465:6;2473;2481;2489;2497;2550:3;2538:9;2529:7;2525:23;2521:33;2518:53;;;2567:1;2564;2557:12;2518:53;2590:43;2625:7;2614:9;2590:43;:::i;:::-;2580:53;;2684:2;2673:9;2669:18;2656:32;2707:18;2748:2;2740:6;2737:14;2734:34;;;2764:1;2761;2754:12;2734:34;2787:49;2828:7;2819:6;2808:9;2804:22;2787:49;:::i;:::-;2777:59;;2889:3;2878:9;2874:19;2861:33;2845:49;;2919:2;2909:8;2906:16;2903:36;;;2935:1;2932;2925:12;2903:36;;2958:51;3001:7;2990:8;2979:9;2975:24;2958:51;:::i;:::-;2948:61;;;3056:3;3045:9;3041:19;3028:33;3018:43;;3080:39;3114:3;3103:9;3099:19;3080:39;:::i;:::-;3070:49;;2327:798;;;;;;;;:::o;3130:349::-;3169:3;3200:66;3193:5;3190:77;3187:257;;3300:77;3297:1;3290:88;3401:4;3398:1;3391:15;3429:4;3426:1;3419:15;3187:257;-1:-1:-1;3471:1:350;3460:13;;3130:349::o","linkReferences":{}},"methodIdentifiers":{"EIP712_DOMAIN_TYPEHASH()":"c7977be7","PROOF_TYPEHASH()":"8b3e3bf6","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":"b163a6b8","getProofStructHash((address,bytes32,bytes32))":"796dfbfa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EIP712_DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumeNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_version\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_chainid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_verifyingContract\",\"type\":\"address\"}],\"name\":\"getDigestWithEIP712Domain\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"getProofStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of drip parameters.\"}},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_proof\":\"Proof struct to hash.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getProofStructHash((address,bytes32,bytes32))\":{\"params\":{\"_proof\":\"Proof struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"consumeNonce()\":{\"notice\":\"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces.\"},\"currentNonce()\":{\"notice\":\"Keeps track of current nonce to generate new nonces for each drip.\"},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail.\"},\"getProofStructHash((address,bytes32,bytes32))\":{\"notice\":\"Returns the hash of the struct Proof.\"}},\"notice\":\"Simple helper contract that helps with testing the Faucet contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/FaucetHelper.sol\":\"FaucetHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]},\"test/mocks/FaucetHelper.sol\":{\"keccak256\":\"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329\",\"dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"consumeNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_version","type":"bytes"},{"internalType":"uint256","name":"_chainid","type":"uint256"},{"internalType":"address","name":"_verifyingContract","type":"address"}],"stateMutability":"pure","type":"function","name":"getDigestWithEIP712Domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getProofStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/FaucetHelper.sol":"FaucetHelper"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"},"test/mocks/FaucetHelper.sol":{"keccak256":"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd","urls":["bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329","dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191576,"contract":"test/mocks/FaucetHelper.sol:FaucetHelper","label":"currentNonce","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"notice":"Simple helper contract that helps with testing the Faucet contract."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}}},"id":312}
{"abi":[{"type":"function","name":"EIP712_DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consumeNonce","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"currentNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"name":"_name","type":"bytes","internalType":"bytes"},{"name":"_version","type":"bytes","internalType":"bytes"},{"name":"_chainid","type":"uint256","internalType":"uint256"},{"name":"_verifyingContract","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getProofStructHash","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506105bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:343:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:343:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1125:119;;;:::i;:::-;;;160:25:382;;;148:2;133:18;1125:119:343;;;;;;;1391:205;;;;;;:::i;:::-;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:382;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:343;;;;;;;;;;3687:19:382;;;;1519:69:343;;;1509:80;;;;;;1391:205;430:103;;471:62;430:103;;883:27;;;;;;2292:544;;;;;;:::i;:::-;;:::i;641:152::-;;698:95;641:152;;1125:119;1165:7;1220:14;;1165:7;;1220:14;;;:::i;:::-;;;;;1209:26;;;;;;160:25:382;;148:2;133:18;;14:177;1209:26:343;;;;;;;;;;;;;1199:37;;;;;;1184:53;;1125:119;:::o;2292:544::-;2657:16;;;;;;;;;;2675:19;;;;;;2622:103;;;698:95;2622:103;;;4188:25:382;;;;4229:18;;4222:34;;;;4272:18;;;4265:34;4315:18;;;4308:34;;;4391:42;4379:55;;4358:19;;;4351:84;2550:7:343;;;;4160:19:382;;2622:103:343;;;;;;;;;;;;2599:136;;;;;;2573:162;;2752:77;2785:15;2802:26;2821:6;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:382;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:343;;;;;;;;;;3687:19:382;;;;1519:69:343;;;1509:80;;;;;;1391:205;2802:26;8710:57:36;;4716:66:382;8710:57:36;;;4704:79:382;4799:11;;;4792:27;;;4835:12;;;4828:28;;;8674:7:36;;4872:12:382;;8710:57:36;;;;;;;;;;;;8700:68;;;;;;8693:75;;8581:194;;;;;2752:77:343;2745:84;2292:544;-1:-1:-1;;;;;;;2292:544:343:o;196:184:382:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:196;453:20;;513:42;502:54;;492:65;;482:93;;571:1;568;561:12;482:93;385:196;;;:::o;586:542::-;638:5;686:4;674:9;669:3;665:19;661:30;658:50;;;704:1;701;694:12;658:50;737:2;731:9;779:4;771:6;767:17;850:6;838:10;835:22;814:18;802:10;799:34;796:62;793:88;;;861:18;;:::i;:::-;897:2;890:22;930:6;-1:-1:-1;930:6:382;960:29;979:9;960:29;:::i;:::-;952:6;945:45;1051:2;1040:9;1036:18;1023:32;1018:2;1010:6;1006:15;999:57;1117:2;1106:9;1102:18;1089:32;1084:2;1076:6;1072:15;1065:57;;586:542;;;;:::o;1133:225::-;1217:6;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1309:43;1344:7;1333:9;1309:43;:::i;:::-;1299:53;1133:225;-1:-1:-1;;;1133:225:382:o;1545:777::-;1587:5;1640:3;1633:4;1625:6;1621:17;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:6;1681:20;1720:18;1757:2;1753;1750:10;1747:36;;;1763:18;;:::i;:::-;1897:2;1891:9;1959:4;1951:13;;1802:66;1947:22;;;1971:2;1943:31;1939:40;1927:53;;;1995:18;;;2015:22;;;1992:46;1989:72;;;2041:18;;:::i;:::-;2081:10;2077:2;2070:22;2116:2;2108:6;2101:18;2162:3;2155:4;2150:2;2142:6;2138:15;2134:26;2131:35;2128:55;;;2179:1;2176;2169:12;2128:55;2243:2;2236:4;2228:6;2224:17;2217:4;2209:6;2205:17;2192:54;2290:1;2283:4;2278:2;2270:6;2266:15;2262:26;2255:37;2310:6;2301:15;;;;;;1545:777;;;;:::o;2327:798::-;2465:6;2473;2481;2489;2497;2550:3;2538:9;2529:7;2525:23;2521:33;2518:53;;;2567:1;2564;2557:12;2518:53;2590:43;2625:7;2614:9;2590:43;:::i;:::-;2580:53;;2684:2;2673:9;2669:18;2656:32;2707:18;2748:2;2740:6;2737:14;2734:34;;;2764:1;2761;2754:12;2734:34;2787:49;2828:7;2819:6;2808:9;2804:22;2787:49;:::i;:::-;2777:59;;2889:3;2878:9;2874:19;2861:33;2845:49;;2919:2;2909:8;2906:16;2903:36;;;2935:1;2932;2925:12;2903:36;;2958:51;3001:7;2990:8;2979:9;2975:24;2958:51;:::i;:::-;2948:61;;;3056:3;3045:9;3041:19;3028:33;3018:43;;3080:39;3114:3;3103:9;3099:19;3080:39;:::i;:::-;3070:49;;2327:798;;;;;;;;:::o;3130:349::-;3169:3;3200:66;3193:5;3190:77;3187:257;;3300:77;3297:1;3290:88;3401:4;3398:1;3391:15;3429:4;3426:1;3419:15;3187:257;-1:-1:-1;3471:1:382;3460:13;;3130:349::o","linkReferences":{}},"methodIdentifiers":{"EIP712_DOMAIN_TYPEHASH()":"c7977be7","PROOF_TYPEHASH()":"8b3e3bf6","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":"b163a6b8","getProofStructHash((address,bytes32,bytes32))":"796dfbfa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EIP712_DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumeNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_version\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_chainid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_verifyingContract\",\"type\":\"address\"}],\"name\":\"getDigestWithEIP712Domain\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"getProofStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of drip parameters.\"}},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_proof\":\"Proof struct to hash.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getProofStructHash((address,bytes32,bytes32))\":{\"params\":{\"_proof\":\"Proof struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"consumeNonce()\":{\"notice\":\"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces.\"},\"currentNonce()\":{\"notice\":\"Keeps track of current nonce to generate new nonces for each drip.\"},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail.\"},\"getProofStructHash((address,bytes32,bytes32))\":{\"notice\":\"Returns the hash of the struct Proof.\"}},\"notice\":\"Simple helper contract that helps with testing the Faucet contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/FaucetHelper.sol\":\"FaucetHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9\",\"dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]},\"test/mocks/FaucetHelper.sol\":{\"keccak256\":\"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329\",\"dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"consumeNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_version","type":"bytes"},{"internalType":"uint256","name":"_chainid","type":"uint256"},{"internalType":"address","name":"_verifyingContract","type":"address"}],"stateMutability":"pure","type":"function","name":"getDigestWithEIP712Domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getProofStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/FaucetHelper.sol":"FaucetHelper"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3","urls":["bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9","dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"},"test/mocks/FaucetHelper.sol":{"keccak256":"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd","urls":["bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329","dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":220642,"contract":"test/mocks/FaucetHelper.sol:FaucetHelper","label":"currentNonce","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"notice":"Simple helper contract that helps with testing the Faucet contract."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}}},"ast":{"absolutePath":"test/mocks/FaucetHelper.sol","id":220728,"exportedSymbols":{"AdminFaucetAuthModule":[111562],"ECDSAUpgradeable":[49259],"FaucetHelper":[220727]},"nodeType":"SourceUnit","src":"32:2807:343","nodes":[{"id":220622,"nodeType":"PragmaDirective","src":"32:23:343","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":220624,"nodeType":"ImportDirective","src":"57:111:343","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol","nameLocation":"-1:-1:-1","scope":220728,"sourceUnit":49260,"symbolAliases":[{"foreign":{"id":220623,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49259,"src":"66:16:343","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220626,"nodeType":"ImportDirective","src":"169:99:343","nodes":[],"absolutePath":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","file":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","nameLocation":"-1:-1:-1","scope":220728,"sourceUnit":111563,"symbolAliases":[{"foreign":{"id":220625,"name":"AdminFaucetAuthModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111562,"src":"178:21:343","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220727,"nodeType":"ContractDefinition","src":"350:2488:343","nodes":[{"id":220633,"nodeType":"VariableDeclaration","src":"430:103:343","nodes":[],"constant":true,"documentation":{"id":220628,"nodeType":"StructuredDocumentation","src":"378:47:343","text":"@notice EIP712 typehash for the Proof type."},"functionSelector":"8b3e3bf6","mutability":"constant","name":"PROOF_TYPEHASH","nameLocation":"454:14:343","scope":220727,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"430:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50726f6f66286164647265737320726563697069656e742c62797465733332206e6f6e63652c6279746573333220696429","id":220631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:51:343","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""},"value":"Proof(address recipient,bytes32 nonce,bytes32 id)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""}],"id":220630,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"471:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"471:62:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":220639,"nodeType":"VariableDeclaration","src":"641:152:343","nodes":[],"constant":true,"documentation":{"id":220634,"nodeType":"StructuredDocumentation","src":"540:96:343","text":"@notice EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"functionSelector":"c7977be7","mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"665:22:343","scope":220727,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"641:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":220637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"708:84:343","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":220636,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"698:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"698:95:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":220642,"nodeType":"VariableDeclaration","src":"883:27:343","nodes":[],"constant":false,"documentation":{"id":220640,"nodeType":"StructuredDocumentation","src":"800:78:343","text":"@notice Keeps track of current nonce to generate new nonces for each drip."},"functionSelector":"adb610a3","mutability":"mutable","name":"currentNonce","nameLocation":"898:12:343","scope":220727,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220641,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:343","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":220660,"nodeType":"FunctionDefinition","src":"1125:119:343","nodes":[],"body":{"id":220659,"nodeType":"Block","src":"1174:70:343","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":220654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1220:14:343","subExpression":{"id":220653,"name":"currentNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220642,"src":"1220:12:343","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":220651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1209:3:343","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1209:10:343","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":220655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1209:26:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220650,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1199:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1199:37:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":220649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1191:7:343","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":220648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1191:7:343","typeDescriptions":{}}},"id":220657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1191:46:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":220647,"id":220658,"nodeType":"Return","src":"1184:53:343"}]},"documentation":{"id":220643,"nodeType":"StructuredDocumentation","src":"917:203:343","text":"@notice Returns a bytes32 nonce that should change everytime. In practice, people should use\n pseudorandom nonces.\n @return Nonce that should be used as part of drip parameters."},"functionSelector":"34b15118","implemented":true,"kind":"function","modifiers":[],"name":"consumeNonce","nameLocation":"1134:12:343","parameters":{"id":220644,"nodeType":"ParameterList","parameters":[],"src":"1146:2:343"},"returnParameters":{"id":220647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":220660,"src":"1165:7:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1165:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1164:9:343"},"scope":220727,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":220683,"nodeType":"FunctionDefinition","src":"1391:205:343","nodes":[],"body":{"id":220682,"nodeType":"Block","src":"1492:104:343","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":220672,"name":"PROOF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220633,"src":"1530:14:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":220673,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220664,"src":"1546:6:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":220674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":111502,"src":"1546:16:343","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":220675,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220664,"src":"1564:6:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":220676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":111504,"src":"1564:12:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":220677,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220664,"src":"1578:6:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":220678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":111506,"src":"1578:9:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":220670,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1519:3:343","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1519:10:343","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":220679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1519:69:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220669,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1509:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1509:80:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":220668,"id":220681,"nodeType":"Return","src":"1502:87:343"}]},"documentation":{"id":220661,"nodeType":"StructuredDocumentation","src":"1250:136:343","text":"@notice Returns the hash of the struct Proof.\n @param _proof Proof struct to hash.\n @return EIP-712 typed struct hash."},"functionSelector":"796dfbfa","implemented":true,"kind":"function","modifiers":[],"name":"getProofStructHash","nameLocation":"1400:18:343","parameters":{"id":220665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220664,"mutability":"mutable","name":"_proof","nameLocation":"1454:6:343","nodeType":"VariableDeclaration","scope":220683,"src":"1419:41:343","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":220663,"nodeType":"UserDefinedTypeName","pathNode":{"id":220662,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":111507,"src":"1419:27:343"},"referencedDeclaration":111507,"src":"1419:27:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"}],"src":"1418:43:343"},"returnParameters":{"id":220668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":220683,"src":"1483:7:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1483:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1482:9:343"},"scope":220727,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":220726,"nodeType":"FunctionDefinition","src":"2292:544:343","nodes":[],"body":{"id":220725,"nodeType":"Block","src":"2563:273:343","nodes":[],"statements":[{"assignments":[220701],"declarations":[{"constant":false,"id":220701,"mutability":"mutable","name":"domainSeparator","nameLocation":"2581:15:343","nodeType":"VariableDeclaration","scope":220725,"src":"2573:23:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":220716,"initialValue":{"arguments":[{"arguments":[{"id":220705,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220639,"src":"2633:22:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":220707,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220689,"src":"2667:5:343","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220706,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2657:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2657:16:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":220710,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220691,"src":"2685:8:343","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220709,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2675:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2675:19:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":220712,"name":"_chainid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220693,"src":"2696:8:343","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":220713,"name":"_verifyingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220695,"src":"2706:18:343","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":220703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2622:3:343","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":220704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2622:10:343","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":220714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2622:103:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":220702,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2599:9:343","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":220715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2599:136:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:162:343"},{"expression":{"arguments":[{"id":220719,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220701,"src":"2785:15:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":220721,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220687,"src":"2821:6:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}],"id":220720,"name":"getProofStructHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220683,"src":"2802:18:343","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Proof_$111507_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct AdminFaucetAuthModule.Proof memory) pure returns (bytes32)"}},"id":220722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2802:26:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":220717,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49259,"src":"2752:16:343","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSAUpgradeable_$49259_$","typeString":"type(library ECDSAUpgradeable)"}},"id":220718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":49258,"src":"2752:32:343","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":220723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2752:77:343","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":220699,"id":220724,"nodeType":"Return","src":"2745:84:343"}]},"documentation":{"id":220684,"nodeType":"StructuredDocumentation","src":"1602:685:343","text":"@notice Computes the EIP712 digest with the given domain parameters.\n Used for testing that different domain parameters fail.\n @param _proof Proof struct to hash.\n @param _name Contract name to use in the EIP712 domain.\n @param _version Contract version to use in the EIP712 domain.\n @param _chainid Chain ID to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @return EIP-712 compatible digest."},"functionSelector":"b163a6b8","implemented":true,"kind":"function","modifiers":[],"name":"getDigestWithEIP712Domain","nameLocation":"2301:25:343","parameters":{"id":220696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220687,"mutability":"mutable","name":"_proof","nameLocation":"2371:6:343","nodeType":"VariableDeclaration","scope":220726,"src":"2336:41:343","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":220686,"nodeType":"UserDefinedTypeName","pathNode":{"id":220685,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":111507,"src":"2336:27:343"},"referencedDeclaration":111507,"src":"2336:27:343","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$111507_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"},{"constant":false,"id":220689,"mutability":"mutable","name":"_name","nameLocation":"2400:5:343","nodeType":"VariableDeclaration","scope":220726,"src":"2387:18:343","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":220688,"name":"bytes","nodeType":"ElementaryTypeName","src":"2387:5:343","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":220691,"mutability":"mutable","name":"_version","nameLocation":"2428:8:343","nodeType":"VariableDeclaration","scope":220726,"src":"2415:21:343","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":220690,"name":"bytes","nodeType":"ElementaryTypeName","src":"2415:5:343","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":220693,"mutability":"mutable","name":"_chainid","nameLocation":"2454:8:343","nodeType":"VariableDeclaration","scope":220726,"src":"2446:16:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220692,"name":"uint256","nodeType":"ElementaryTypeName","src":"2446:7:343","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":220695,"mutability":"mutable","name":"_verifyingContract","nameLocation":"2480:18:343","nodeType":"VariableDeclaration","scope":220726,"src":"2472:26:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":220694,"name":"address","nodeType":"ElementaryTypeName","src":"2472:7:343","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2326:178:343"},"returnParameters":{"id":220699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":220726,"src":"2550:7:343","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2550:7:343","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2549:9:343"},"scope":220727,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"FaucetHelper","contractDependencies":[],"contractKind":"contract","documentation":{"id":220627,"nodeType":"StructuredDocumentation","src":"270:80:343","text":"@notice Simple helper contract that helps with testing the Faucet contract."},"fullyImplemented":true,"linearizedBaseContracts":[220727],"name":"FaucetHelper","nameLocation":"359:12:343","scope":220728,"usedErrors":[]}],"license":"MIT"},"id":343}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:192:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:192;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:192:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"id":192}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:202:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:202;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:202:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"ast":{"absolutePath":"src/libraries/Hashing.sol","id":107195,"exportedSymbols":{"Encoding":[106683],"Hashing":[107194],"Types":[108361]},"nodeType":"SourceUnit","src":"32:5316:202","nodes":[{"id":106974,"nodeType":"PragmaDirective","src":"32:23:202","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":106976,"nodeType":"ImportDirective","src":"57:48:202","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":107195,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":106975,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:202","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":106978,"nodeType":"ImportDirective","src":"106:54:202","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":107195,"sourceUnit":106684,"symbolAliases":[{"foreign":{"id":106977,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106683,"src":"115:8:202","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":107194,"nodeType":"ContractDefinition","src":"255:5092:202","nodes":[{"id":106996,"nodeType":"FunctionDefinition","src":"618:178:202","nodes":[],"body":{"id":106995,"nodeType":"Block","src":"723:73:202","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":106991,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106983,"src":"784:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$108347_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UserDepositTransaction_$108347_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}],"expression":{"id":106989,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106683,"src":"750:8:202","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$106683_$","typeString":"type(library Encoding)"}},"id":106990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeDepositTransaction","nodeType":"MemberAccess","referencedDeclaration":106400,"src":"750:33:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_UserDepositTransaction_$108347_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct Types.UserDepositTransaction memory) pure returns (bytes memory)"}},"id":106992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"750:38:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":106988,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"740:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":106993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:49:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":106987,"id":106994,"nodeType":"Return","src":"733:56:202"}]},"documentation":{"id":106980,"nodeType":"StructuredDocumentation","src":"277:336:202","text":"@notice Computes the hash of the RLP encoded L2 transaction that would be generated when a\n given deposit is sent to the L2 system. Useful for searching for a deposit in the L2\n system.\n @param _tx User deposit transaction to hash.\n @return Hash of the RLP encoded L2 deposit transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositTransaction","nameLocation":"627:22:202","parameters":{"id":106984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106983,"mutability":"mutable","name":"_tx","nameLocation":"686:3:202","nodeType":"VariableDeclaration","scope":106996,"src":"650:39:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$108347_memory_ptr","typeString":"struct Types.UserDepositTransaction"},"typeName":{"id":106982,"nodeType":"UserDefinedTypeName","pathNode":{"id":106981,"name":"Types.UserDepositTransaction","nodeType":"IdentifierPath","referencedDeclaration":108347,"src":"650:28:202"},"referencedDeclaration":108347,"src":"650:28:202","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$108347_storage_ptr","typeString":"struct Types.UserDepositTransaction"}},"visibility":"internal"}],"src":"649:41:202"},"returnParameters":{"id":106987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":106996,"src":"714:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":106985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"714:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"713:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107028,"nodeType":"FunctionDefinition","src":"1289:244:202","nodes":[],"body":{"id":107027,"nodeType":"Block","src":"1389:144:202","nodes":[],"statements":[{"assignments":[107007],"declarations":[{"constant":false,"id":107007,"mutability":"mutable","name":"depositId","nameLocation":"1407:9:202","nodeType":"VariableDeclaration","scope":107027,"src":"1399:17:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1399:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":107015,"initialValue":{"arguments":[{"arguments":[{"id":107011,"name":"_l1BlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106999,"src":"1440:12:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107012,"name":"_logIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107001,"src":"1454:9:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":107009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1429:3:202","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":107010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1429:10:202","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":107013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1429:35:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107008,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1419:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:46:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1399:66:202"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":107021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:202","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":107020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1503:7:202","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":107019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1503:7:202","typeDescriptions":{}}},"id":107022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1503:10:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107023,"name":"depositId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107007,"src":"1515:9:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":107017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1492:3:202","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":107018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1492:10:202","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":107024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1492:33:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107016,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1482:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:44:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107005,"id":107026,"nodeType":"Return","src":"1475:51:202"}]},"documentation":{"id":106997,"nodeType":"StructuredDocumentation","src":"802:482:202","text":"@notice Computes the deposit transaction's \"source hash\", a value that guarantees the hash\n of the L2 transaction that corresponds to a deposit is unique and is\n deterministically generated from L1 transaction data.\n @param _l1BlockHash Hash of the L1 block where the deposit was included.\n @param _logIndex The index of the log that created the deposit transaction.\n @return Hash of the deposit transaction's \"source hash\"."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositSource","nameLocation":"1298:17:202","parameters":{"id":107002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106999,"mutability":"mutable","name":"_l1BlockHash","nameLocation":"1324:12:202","nodeType":"VariableDeclaration","scope":107028,"src":"1316:20:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":106998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1316:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":107001,"mutability":"mutable","name":"_logIndex","nameLocation":"1346:9:202","nodeType":"VariableDeclaration","scope":107028,"src":"1338:17:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1338:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1315:41:202"},"returnParameters":{"id":107005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107028,"src":"1380:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1380:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1379:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107085,"nodeType":"FunctionDefinition","src":"2094:660:202","nodes":[],"body":{"id":107084,"nodeType":"Block","src":"2345:409:202","nodes":[],"statements":[{"assignments":[null,107047],"declarations":[null,{"constant":false,"id":107047,"mutability":"mutable","name":"version","nameLocation":"2365:7:202","nodeType":"VariableDeclaration","scope":107084,"src":"2358:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":107046,"name":"uint16","nodeType":"ElementaryTypeName","src":"2358:6:202","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":107052,"initialValue":{"arguments":[{"id":107050,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107031,"src":"2406:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":107048,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106683,"src":"2376:8:202","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$106683_$","typeString":"type(library Encoding)"}},"id":107049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":106549,"src":"2376:29:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint240_$_t_uint16_$","typeString":"function (uint256) pure returns (uint240,uint16)"}},"id":107051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2376:37:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint240_$_t_uint16_$","typeString":"tuple(uint240,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"2355:58:202"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":107055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":107053,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107047,"src":"2427:7:202","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":107054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2438:1:202","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2427:12:202","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":107066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":107064,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107047,"src":"2540:7:202","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":107065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:1:202","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2540:12:202","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":107081,"nodeType":"Block","src":"2668:80:202","statements":[{"expression":{"arguments":[{"hexValue":"48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6573736167652076657273696f6e","id":107078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2689:47:202","typeDescriptions":{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""},"value":"Hashing: unknown cross domain message version"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""}],"id":107077,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2682:6:202","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":107079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2682:55:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":107080,"nodeType":"ExpressionStatement","src":"2682:55:202"}]},"id":107082,"nodeType":"IfStatement","src":"2536:212:202","trueBody":{"id":107076,"nodeType":"Block","src":"2554:108:202","statements":[{"expression":{"arguments":[{"id":107068,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107031,"src":"2600:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107069,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107033,"src":"2608:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107070,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107035,"src":"2617:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107071,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107037,"src":"2626:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107072,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107039,"src":"2634:9:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107073,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107041,"src":"2645:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107067,"name":"hashCrossDomainMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107141,"src":"2575:24:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes32)"}},"id":107074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:76:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107045,"id":107075,"nodeType":"Return","src":"2568:83:202"}]}},"id":107083,"nodeType":"IfStatement","src":"2423:325:202","trueBody":{"id":107063,"nodeType":"Block","src":"2441:89:202","statements":[{"expression":{"arguments":[{"id":107057,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107035,"src":"2487:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107058,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107033,"src":"2496:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107059,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107041,"src":"2505:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":107060,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107031,"src":"2512:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":107056,"name":"hashCrossDomainMessageV0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107110,"src":"2462:24:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes32)"}},"id":107061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2462:57:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107045,"id":107062,"nodeType":"Return","src":"2455:64:202"}]}}]},"documentation":{"id":107029,"nodeType":"StructuredDocumentation","src":"1539:550:202","text":"@notice Hashes the cross domain message based on the version that is encoded into the\n message nonce.\n @param _nonce Message nonce with version encoded into the first two bytes.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessage","nameLocation":"2103:22:202","parameters":{"id":107042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107031,"mutability":"mutable","name":"_nonce","nameLocation":"2143:6:202","nodeType":"VariableDeclaration","scope":107085,"src":"2135:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107030,"name":"uint256","nodeType":"ElementaryTypeName","src":"2135:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107033,"mutability":"mutable","name":"_sender","nameLocation":"2167:7:202","nodeType":"VariableDeclaration","scope":107085,"src":"2159:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107032,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107035,"mutability":"mutable","name":"_target","nameLocation":"2192:7:202","nodeType":"VariableDeclaration","scope":107085,"src":"2184:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107034,"name":"address","nodeType":"ElementaryTypeName","src":"2184:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107037,"mutability":"mutable","name":"_value","nameLocation":"2217:6:202","nodeType":"VariableDeclaration","scope":107085,"src":"2209:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2209:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107039,"mutability":"mutable","name":"_gasLimit","nameLocation":"2241:9:202","nodeType":"VariableDeclaration","scope":107085,"src":"2233:17:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107038,"name":"uint256","nodeType":"ElementaryTypeName","src":"2233:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107041,"mutability":"mutable","name":"_data","nameLocation":"2273:5:202","nodeType":"VariableDeclaration","scope":107085,"src":"2260:18:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":107040,"name":"bytes","nodeType":"ElementaryTypeName","src":"2260:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2125:159:202"},"returnParameters":{"id":107045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107085,"src":"2332:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2332:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2331:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107110,"nodeType":"FunctionDefinition","src":"3100:305:202","nodes":[],"body":{"id":107109,"nodeType":"Block","src":"3302:103:202","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":107102,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107088,"src":"3365:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107103,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107090,"src":"3374:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107104,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107092,"src":"3383:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":107105,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107094,"src":"3390:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":107100,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106683,"src":"3329:8:202","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$106683_$","typeString":"type(library Encoding)"}},"id":107101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeCrossDomainMessageV0","nodeType":"MemberAccess","referencedDeclaration":106480,"src":"3329:35:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes memory)"}},"id":107106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3329:68:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107099,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3319:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3319:79:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107098,"id":107108,"nodeType":"Return","src":"3312:86:202"}]},"documentation":{"id":107086,"nodeType":"StructuredDocumentation","src":"2760:335:202","text":"@notice Hashes a cross domain message based on the V0 (legacy) encoding.\n @param _target Address of the target of the message.\n @param _sender Address of the sender of the message.\n @param _data Data to send with the message.\n @param _nonce Message nonce.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV0","nameLocation":"3109:24:202","parameters":{"id":107095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107088,"mutability":"mutable","name":"_target","nameLocation":"3151:7:202","nodeType":"VariableDeclaration","scope":107110,"src":"3143:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107087,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107090,"mutability":"mutable","name":"_sender","nameLocation":"3176:7:202","nodeType":"VariableDeclaration","scope":107110,"src":"3168:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107089,"name":"address","nodeType":"ElementaryTypeName","src":"3168:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107092,"mutability":"mutable","name":"_data","nameLocation":"3206:5:202","nodeType":"VariableDeclaration","scope":107110,"src":"3193:18:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":107091,"name":"bytes","nodeType":"ElementaryTypeName","src":"3193:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":107094,"mutability":"mutable","name":"_nonce","nameLocation":"3229:6:202","nodeType":"VariableDeclaration","scope":107110,"src":"3221:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107093,"name":"uint256","nodeType":"ElementaryTypeName","src":"3221:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3133:108:202"},"returnParameters":{"id":107098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107110,"src":"3289:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3288:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107141,"nodeType":"FunctionDefinition","src":"3877:375:202","nodes":[],"body":{"id":107140,"nodeType":"Block","src":"4130:122:202","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":107131,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107113,"src":"4193:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107132,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107115,"src":"4201:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107133,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107117,"src":"4210:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107134,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107119,"src":"4219:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107135,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107121,"src":"4227:9:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":107136,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107123,"src":"4238:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":107129,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106683,"src":"4157:8:202","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$106683_$","typeString":"type(library Encoding)"}},"id":107130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeCrossDomainMessageV1","nodeType":"MemberAccess","referencedDeclaration":106510,"src":"4157:35:202","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes memory)"}},"id":107137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4157:87:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107128,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4147:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4147:98:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107127,"id":107139,"nodeType":"Return","src":"4140:105:202"}]},"documentation":{"id":107111,"nodeType":"StructuredDocumentation","src":"3411:461:202","text":"@notice Hashes a cross domain message based on the V1 (current) encoding.\n @param _nonce Message nonce.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV1","nameLocation":"3886:24:202","parameters":{"id":107124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107113,"mutability":"mutable","name":"_nonce","nameLocation":"3928:6:202","nodeType":"VariableDeclaration","scope":107141,"src":"3920:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107112,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107115,"mutability":"mutable","name":"_sender","nameLocation":"3952:7:202","nodeType":"VariableDeclaration","scope":107141,"src":"3944:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107114,"name":"address","nodeType":"ElementaryTypeName","src":"3944:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107117,"mutability":"mutable","name":"_target","nameLocation":"3977:7:202","nodeType":"VariableDeclaration","scope":107141,"src":"3969:15:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107116,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":107119,"mutability":"mutable","name":"_value","nameLocation":"4002:6:202","nodeType":"VariableDeclaration","scope":107141,"src":"3994:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107118,"name":"uint256","nodeType":"ElementaryTypeName","src":"3994:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107121,"mutability":"mutable","name":"_gasLimit","nameLocation":"4026:9:202","nodeType":"VariableDeclaration","scope":107141,"src":"4018:17:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107120,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107123,"mutability":"mutable","name":"_data","nameLocation":"4058:5:202","nodeType":"VariableDeclaration","scope":107141,"src":"4045:18:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":107122,"name":"bytes","nodeType":"ElementaryTypeName","src":"4045:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3910:159:202"},"returnParameters":{"id":107127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107141,"src":"4117:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4117:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4116:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107169,"nodeType":"FunctionDefinition","src":"4456:211:202","nodes":[],"body":{"id":107168,"nodeType":"Block","src":"4552:115:202","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":107153,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4590:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":108349,"src":"4590:9:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":107155,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4601:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":108351,"src":"4601:10:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":107157,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4613:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":108353,"src":"4613:10:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":107159,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4625:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":108355,"src":"4625:9:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":107161,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4636:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":108357,"src":"4636:12:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":107163,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107145,"src":"4650:3:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":107164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":108359,"src":"4650:8:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":107151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4579:3:202","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":107152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4579:10:202","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":107165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4579:80:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4569:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4569:91:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107149,"id":107167,"nodeType":"Return","src":"4562:98:202"}]},"documentation":{"id":107142,"nodeType":"StructuredDocumentation","src":"4258:193:202","text":"@notice Derives the withdrawal hash according to the encoding in the L2 Withdrawer contract\n @param _tx Withdrawal transaction to hash.\n @return Hashed withdrawal transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashWithdrawal","nameLocation":"4465:14:202","parameters":{"id":107146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107145,"mutability":"mutable","name":"_tx","nameLocation":"4515:3:202","nodeType":"VariableDeclaration","scope":107169,"src":"4480:38:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":107144,"nodeType":"UserDefinedTypeName","pathNode":{"id":107143,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"4480:27:202"},"referencedDeclaration":108360,"src":"4480:27:202","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"4479:40:202"},"returnParameters":{"id":107149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107169,"src":"4543:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4543:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4542:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":107193,"nodeType":"FunctionDefinition","src":"4961:384:202","nodes":[],"body":{"id":107192,"nodeType":"Block","src":"5069:276:202","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":107181,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107173,"src":"5137:16:202","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":107182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":108321,"src":"5137:24:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":107183,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107173,"src":"5179:16:202","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":107184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stateRoot","nodeType":"MemberAccess","referencedDeclaration":108323,"src":"5179:26:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":107185,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107173,"src":"5223:16:202","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":107186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"messagePasserStorageRoot","nodeType":"MemberAccess","referencedDeclaration":108325,"src":"5223:41:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":107187,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107173,"src":"5282:16:202","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":107188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latestBlockhash","nodeType":"MemberAccess","referencedDeclaration":108327,"src":"5282:32:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":107179,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5109:3:202","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":107180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5109:10:202","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":107189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5109:219:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107178,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5086:9:202","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":107190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5086:252:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":107177,"id":107191,"nodeType":"Return","src":"5079:259:202"}]},"documentation":{"id":107170,"nodeType":"StructuredDocumentation","src":"4673:283:202","text":"@notice Hashes the various elements of an output root proof into an output root hash which\n can be used to check if the proof is valid.\n @param _outputRootProof Output root proof which should hash to an output root.\n @return Hashed output root proof."},"implemented":true,"kind":"function","modifiers":[],"name":"hashOutputRootProof","nameLocation":"4970:19:202","parameters":{"id":107174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107173,"mutability":"mutable","name":"_outputRootProof","nameLocation":"5019:16:202","nodeType":"VariableDeclaration","scope":107193,"src":"4990:45:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_memory_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":107172,"nodeType":"UserDefinedTypeName","pathNode":{"id":107171,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"4990:21:202"},"referencedDeclaration":108328,"src":"4990:21:202","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"}],"src":"4989:47:202"},"returnParameters":{"id":107177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":107193,"src":"5060:7:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":107175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5060:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5059:9:202"},"scope":107194,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Hashing","contractDependencies":[],"contractKind":"library","documentation":{"id":106979,"nodeType":"StructuredDocumentation","src":"162:93:202","text":"@title Hashing\n @notice Hashing handles Optimism's various different hashing schemes."},"fullyImplemented":true,"linearizedBaseContracts":[107194],"name":"Hashing","nameLocation":"263:7:202","scope":107195,"usedErrors":[]}],"license":"MIT"},"id":202}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"255:5092:93:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:93;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"255:5092:93:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"paris","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"id":93}
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"255:5092:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"255:5092:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"cancun","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"ast":{"absolutePath":"src/libraries/Hashing.sol","id":48140,"exportedSymbols":{"Encoding":[47917],"Hashing":[48139],"Types":[48697]},"nodeType":"SourceUnit","src":"32:5316:28","nodes":[{"id":47919,"nodeType":"PragmaDirective","src":"32:23:28","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47921,"nodeType":"ImportDirective","src":"57:48:28","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":48140,"sourceUnit":48698,"symbolAliases":[{"foreign":{"id":47920,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48697,"src":"66:5:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47923,"nodeType":"ImportDirective","src":"106:54:28","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":48140,"sourceUnit":47918,"symbolAliases":[{"foreign":{"id":47922,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"115:8:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48139,"nodeType":"ContractDefinition","src":"255:5092:28","nodes":[{"id":47941,"nodeType":"FunctionDefinition","src":"618:178:28","nodes":[],"body":{"id":47940,"nodeType":"Block","src":"723:73:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47936,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47928,"src":"784:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$48682_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UserDepositTransaction_$48682_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}],"expression":{"id":47934,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"750:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$47917_$","typeString":"type(library Encoding)"}},"id":47935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"759:24:28","memberName":"encodeDepositTransaction","nodeType":"MemberAccess","referencedDeclaration":47634,"src":"750:33:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_UserDepositTransaction_$48682_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct Types.UserDepositTransaction memory) pure returns (bytes memory)"}},"id":47937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"750:38:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47933,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"740:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47932,"id":47939,"nodeType":"Return","src":"733:56:28"}]},"documentation":{"id":47925,"nodeType":"StructuredDocumentation","src":"277:336:28","text":"@notice Computes the hash of the RLP encoded L2 transaction that would be generated when a\n given deposit is sent to the L2 system. Useful for searching for a deposit in the L2\n system.\n @param _tx User deposit transaction to hash.\n @return Hash of the RLP encoded L2 deposit transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositTransaction","nameLocation":"627:22:28","parameters":{"id":47929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47928,"mutability":"mutable","name":"_tx","nameLocation":"686:3:28","nodeType":"VariableDeclaration","scope":47941,"src":"650:39:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$48682_memory_ptr","typeString":"struct Types.UserDepositTransaction"},"typeName":{"id":47927,"nodeType":"UserDefinedTypeName","pathNode":{"id":47926,"name":"Types.UserDepositTransaction","nameLocations":["650:5:28","656:22:28"],"nodeType":"IdentifierPath","referencedDeclaration":48682,"src":"650:28:28"},"referencedDeclaration":48682,"src":"650:28:28","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$48682_storage_ptr","typeString":"struct Types.UserDepositTransaction"}},"visibility":"internal"}],"src":"649:41:28"},"returnParameters":{"id":47932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47941,"src":"714:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"714:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"713:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47973,"nodeType":"FunctionDefinition","src":"1289:244:28","nodes":[],"body":{"id":47972,"nodeType":"Block","src":"1389:144:28","nodes":[],"statements":[{"assignments":[47952],"declarations":[{"constant":false,"id":47952,"mutability":"mutable","name":"depositId","nameLocation":"1407:9:28","nodeType":"VariableDeclaration","scope":47972,"src":"1399:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1399:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47960,"initialValue":{"arguments":[{"arguments":[{"id":47956,"name":"_l1BlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47944,"src":"1440:12:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47957,"name":"_logIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47946,"src":"1454:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1429:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1433:6:28","memberName":"encode","nodeType":"MemberAccess","src":"1429:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1429:35:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47953,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1419:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1419:46:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1399:66:28"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":47966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1503:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":47964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1503:7:28","typeDescriptions":{}}},"id":47967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47968,"name":"depositId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47952,"src":"1515:9:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1492:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1496:6:28","memberName":"encode","nodeType":"MemberAccess","src":"1492:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1492:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47961,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1482:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:44:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47950,"id":47971,"nodeType":"Return","src":"1475:51:28"}]},"documentation":{"id":47942,"nodeType":"StructuredDocumentation","src":"802:482:28","text":"@notice Computes the deposit transaction's \"source hash\", a value that guarantees the hash\n of the L2 transaction that corresponds to a deposit is unique and is\n deterministically generated from L1 transaction data.\n @param _l1BlockHash Hash of the L1 block where the deposit was included.\n @param _logIndex The index of the log that created the deposit transaction.\n @return Hash of the deposit transaction's \"source hash\"."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositSource","nameLocation":"1298:17:28","parameters":{"id":47947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47944,"mutability":"mutable","name":"_l1BlockHash","nameLocation":"1324:12:28","nodeType":"VariableDeclaration","scope":47973,"src":"1316:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1316:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47946,"mutability":"mutable","name":"_logIndex","nameLocation":"1346:9:28","nodeType":"VariableDeclaration","scope":47973,"src":"1338:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47945,"name":"uint256","nodeType":"ElementaryTypeName","src":"1338:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1315:41:28"},"returnParameters":{"id":47950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47973,"src":"1380:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1380:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1379:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48030,"nodeType":"FunctionDefinition","src":"2094:660:28","nodes":[],"body":{"id":48029,"nodeType":"Block","src":"2345:409:28","nodes":[],"statements":[{"assignments":[null,47992],"declarations":[null,{"constant":false,"id":47992,"mutability":"mutable","name":"version","nameLocation":"2365:7:28","nodeType":"VariableDeclaration","scope":48029,"src":"2358:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47991,"name":"uint16","nodeType":"ElementaryTypeName","src":"2358:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47997,"initialValue":{"arguments":[{"id":47995,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47976,"src":"2406:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47993,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"2376:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$47917_$","typeString":"type(library Encoding)"}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:20:28","memberName":"decodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":47783,"src":"2376:29:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint240_$_t_uint16_$","typeString":"function (uint256) pure returns (uint240,uint16)"}},"id":47996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:37:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint240_$_t_uint16_$","typeString":"tuple(uint240,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"2355:58:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47998,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47992,"src":"2427:7:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2438:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2427:12:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48009,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47992,"src":"2540:7:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":48010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2540:12:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48026,"nodeType":"Block","src":"2668:80:28","statements":[{"expression":{"arguments":[{"hexValue":"48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6573736167652076657273696f6e","id":48023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2689:47:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""},"value":"Hashing: unknown cross domain message version"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""}],"id":48022,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2682:6:28","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":48024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2682:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48025,"nodeType":"ExpressionStatement","src":"2682:55:28"}]},"id":48027,"nodeType":"IfStatement","src":"2536:212:28","trueBody":{"id":48021,"nodeType":"Block","src":"2554:108:28","statements":[{"expression":{"arguments":[{"id":48013,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47976,"src":"2600:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48014,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47978,"src":"2608:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48015,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47980,"src":"2617:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48016,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"2626:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48017,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47984,"src":"2634:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48018,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47986,"src":"2645:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48012,"name":"hashCrossDomainMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48086,"src":"2575:24:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes32)"}},"id":48019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2575:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47990,"id":48020,"nodeType":"Return","src":"2568:83:28"}]}},"id":48028,"nodeType":"IfStatement","src":"2423:325:28","trueBody":{"id":48008,"nodeType":"Block","src":"2441:89:28","statements":[{"expression":{"arguments":[{"id":48002,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47980,"src":"2487:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48003,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47978,"src":"2496:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48004,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47986,"src":"2505:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48005,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47976,"src":"2512:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48001,"name":"hashCrossDomainMessageV0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"2462:24:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes32)"}},"id":48006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2462:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47990,"id":48007,"nodeType":"Return","src":"2455:64:28"}]}}]},"documentation":{"id":47974,"nodeType":"StructuredDocumentation","src":"1539:550:28","text":"@notice Hashes the cross domain message based on the version that is encoded into the\n message nonce.\n @param _nonce Message nonce with version encoded into the first two bytes.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessage","nameLocation":"2103:22:28","parameters":{"id":47987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47976,"mutability":"mutable","name":"_nonce","nameLocation":"2143:6:28","nodeType":"VariableDeclaration","scope":48030,"src":"2135:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47975,"name":"uint256","nodeType":"ElementaryTypeName","src":"2135:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47978,"mutability":"mutable","name":"_sender","nameLocation":"2167:7:28","nodeType":"VariableDeclaration","scope":48030,"src":"2159:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47977,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47980,"mutability":"mutable","name":"_target","nameLocation":"2192:7:28","nodeType":"VariableDeclaration","scope":48030,"src":"2184:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47979,"name":"address","nodeType":"ElementaryTypeName","src":"2184:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47982,"mutability":"mutable","name":"_value","nameLocation":"2217:6:28","nodeType":"VariableDeclaration","scope":48030,"src":"2209:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47981,"name":"uint256","nodeType":"ElementaryTypeName","src":"2209:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47984,"mutability":"mutable","name":"_gasLimit","nameLocation":"2241:9:28","nodeType":"VariableDeclaration","scope":48030,"src":"2233:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47983,"name":"uint256","nodeType":"ElementaryTypeName","src":"2233:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47986,"mutability":"mutable","name":"_data","nameLocation":"2273:5:28","nodeType":"VariableDeclaration","scope":48030,"src":"2260:18:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47985,"name":"bytes","nodeType":"ElementaryTypeName","src":"2260:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2125:159:28"},"returnParameters":{"id":47990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48030,"src":"2332:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2332:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2331:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48055,"nodeType":"FunctionDefinition","src":"3100:305:28","nodes":[],"body":{"id":48054,"nodeType":"Block","src":"3302:103:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":48047,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48033,"src":"3365:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48048,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48035,"src":"3374:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48049,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48037,"src":"3383:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48050,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48039,"src":"3390:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48045,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"3329:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$47917_$","typeString":"type(library Encoding)"}},"id":48046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3338:26:28","memberName":"encodeCrossDomainMessageV0","nodeType":"MemberAccess","referencedDeclaration":47714,"src":"3329:35:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes memory)"}},"id":48051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48044,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3319:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":48052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3319:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":48043,"id":48053,"nodeType":"Return","src":"3312:86:28"}]},"documentation":{"id":48031,"nodeType":"StructuredDocumentation","src":"2760:335:28","text":"@notice Hashes a cross domain message based on the V0 (legacy) encoding.\n @param _target Address of the target of the message.\n @param _sender Address of the sender of the message.\n @param _data Data to send with the message.\n @param _nonce Message nonce.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV0","nameLocation":"3109:24:28","parameters":{"id":48040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48033,"mutability":"mutable","name":"_target","nameLocation":"3151:7:28","nodeType":"VariableDeclaration","scope":48055,"src":"3143:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48032,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48035,"mutability":"mutable","name":"_sender","nameLocation":"3176:7:28","nodeType":"VariableDeclaration","scope":48055,"src":"3168:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48034,"name":"address","nodeType":"ElementaryTypeName","src":"3168:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48037,"mutability":"mutable","name":"_data","nameLocation":"3206:5:28","nodeType":"VariableDeclaration","scope":48055,"src":"3193:18:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48036,"name":"bytes","nodeType":"ElementaryTypeName","src":"3193:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48039,"mutability":"mutable","name":"_nonce","nameLocation":"3229:6:28","nodeType":"VariableDeclaration","scope":48055,"src":"3221:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48038,"name":"uint256","nodeType":"ElementaryTypeName","src":"3221:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3133:108:28"},"returnParameters":{"id":48043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48055,"src":"3289:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3288:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48086,"nodeType":"FunctionDefinition","src":"3877:375:28","nodes":[],"body":{"id":48085,"nodeType":"Block","src":"4130:122:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":48076,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48058,"src":"4193:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48077,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48060,"src":"4201:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48078,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48062,"src":"4210:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48079,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48064,"src":"4219:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48080,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48066,"src":"4227:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48081,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48068,"src":"4238:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48074,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"4157:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$47917_$","typeString":"type(library Encoding)"}},"id":48075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4166:26:28","memberName":"encodeCrossDomainMessageV1","nodeType":"MemberAccess","referencedDeclaration":47744,"src":"4157:35:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes memory)"}},"id":48082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4157:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48073,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4147:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":48083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:98:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":48072,"id":48084,"nodeType":"Return","src":"4140:105:28"}]},"documentation":{"id":48056,"nodeType":"StructuredDocumentation","src":"3411:461:28","text":"@notice Hashes a cross domain message based on the V1 (current) encoding.\n @param _nonce Message nonce.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV1","nameLocation":"3886:24:28","parameters":{"id":48069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48058,"mutability":"mutable","name":"_nonce","nameLocation":"3928:6:28","nodeType":"VariableDeclaration","scope":48086,"src":"3920:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48057,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48060,"mutability":"mutable","name":"_sender","nameLocation":"3952:7:28","nodeType":"VariableDeclaration","scope":48086,"src":"3944:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48059,"name":"address","nodeType":"ElementaryTypeName","src":"3944:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48062,"mutability":"mutable","name":"_target","nameLocation":"3977:7:28","nodeType":"VariableDeclaration","scope":48086,"src":"3969:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48061,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48064,"mutability":"mutable","name":"_value","nameLocation":"4002:6:28","nodeType":"VariableDeclaration","scope":48086,"src":"3994:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3994:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48066,"mutability":"mutable","name":"_gasLimit","nameLocation":"4026:9:28","nodeType":"VariableDeclaration","scope":48086,"src":"4018:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48065,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48068,"mutability":"mutable","name":"_data","nameLocation":"4058:5:28","nodeType":"VariableDeclaration","scope":48086,"src":"4045:18:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48067,"name":"bytes","nodeType":"ElementaryTypeName","src":"4045:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3910:159:28"},"returnParameters":{"id":48072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48086,"src":"4117:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4117:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4116:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48114,"nodeType":"FunctionDefinition","src":"4456:211:28","nodes":[],"body":{"id":48113,"nodeType":"Block","src":"4552:115:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":48098,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4590:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4594:5:28","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48685,"src":"4590:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":48100,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4601:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4605:6:28","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":48687,"src":"4601:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":48102,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4613:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4617:6:28","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"4613:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":48104,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4625:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4629:5:28","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"4625:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":48106,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4636:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:8:28","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":48693,"src":"4636:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":48108,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48090,"src":"4650:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":48109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4654:4:28","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":48695,"src":"4650:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4579:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4583:6:28","memberName":"encode","nodeType":"MemberAccess","src":"4579:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4579:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48095,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4569:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":48111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":48094,"id":48112,"nodeType":"Return","src":"4562:98:28"}]},"documentation":{"id":48087,"nodeType":"StructuredDocumentation","src":"4258:193:28","text":"@notice Derives the withdrawal hash according to the encoding in the L2 Withdrawer contract\n @param _tx Withdrawal transaction to hash.\n @return Hashed withdrawal transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashWithdrawal","nameLocation":"4465:14:28","parameters":{"id":48091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48090,"mutability":"mutable","name":"_tx","nameLocation":"4515:3:28","nodeType":"VariableDeclaration","scope":48114,"src":"4480:38:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":48089,"nodeType":"UserDefinedTypeName","pathNode":{"id":48088,"name":"Types.WithdrawalTransaction","nameLocations":["4480:5:28","4486:21:28"],"nodeType":"IdentifierPath","referencedDeclaration":48696,"src":"4480:27:28"},"referencedDeclaration":48696,"src":"4480:27:28","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$48696_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"4479:40:28"},"returnParameters":{"id":48094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48114,"src":"4543:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4543:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4542:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48138,"nodeType":"FunctionDefinition","src":"4961:384:28","nodes":[],"body":{"id":48137,"nodeType":"Block","src":"5069:276:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":48126,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48118,"src":"5137:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":48127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5154:7:28","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"5137:24:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":48128,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48118,"src":"5179:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":48129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5196:9:28","memberName":"stateRoot","nodeType":"MemberAccess","referencedDeclaration":48657,"src":"5179:26:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":48130,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48118,"src":"5223:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":48131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5240:24:28","memberName":"messagePasserStorageRoot","nodeType":"MemberAccess","referencedDeclaration":48659,"src":"5223:41:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":48132,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48118,"src":"5282:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":48133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5299:15:28","memberName":"latestBlockhash","nodeType":"MemberAccess","referencedDeclaration":48661,"src":"5282:32:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":48124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5109:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5113:6:28","memberName":"encode","nodeType":"MemberAccess","src":"5109:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5109:219:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48123,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5086:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":48135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5086:252:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":48122,"id":48136,"nodeType":"Return","src":"5079:259:28"}]},"documentation":{"id":48115,"nodeType":"StructuredDocumentation","src":"4673:283:28","text":"@notice Hashes the various elements of an output root proof into an output root hash which\n can be used to check if the proof is valid.\n @param _outputRootProof Output root proof which should hash to an output root.\n @return Hashed output root proof."},"implemented":true,"kind":"function","modifiers":[],"name":"hashOutputRootProof","nameLocation":"4970:19:28","parameters":{"id":48119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48118,"mutability":"mutable","name":"_outputRootProof","nameLocation":"5019:16:28","nodeType":"VariableDeclaration","scope":48138,"src":"4990:45:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_memory_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":48117,"nodeType":"UserDefinedTypeName","pathNode":{"id":48116,"name":"Types.OutputRootProof","nameLocations":["4990:5:28","4996:15:28"],"nodeType":"IdentifierPath","referencedDeclaration":48662,"src":"4990:21:28"},"referencedDeclaration":48662,"src":"4990:21:28","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$48662_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"}],"src":"4989:47:28"},"returnParameters":{"id":48122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48138,"src":"5060:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5060:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5059:9:28"},"scope":48139,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Hashing","contractDependencies":[],"contractKind":"library","documentation":{"id":47924,"nodeType":"StructuredDocumentation","src":"162:93:28","text":"@title Hashing\n @notice Hashing handles Optimism's various different hashing schemes."},"fullyImplemented":true,"linearizedBaseContracts":[48139],"name":"Hashing","nameLocation":"263:7:28","scope":48140,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":28}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"oracle_","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"IBigStepper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"notice\":\"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28fc\\u2836\\u2885\\u2812\\u2884\\u2894\\u28f6\\u2866\\u28e4\\u2864\\u2804\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2828\\u284f\\u2800\\u2800\\u2808\\u2822\\u28d9\\u28af\\u28c4\\u2800\\u28a8\\u282f\\u287a\\u2858\\u2884\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28f6\\u2846\\u2800\\u2800\\u2800\\u2800\\u2808\\u2813\\u282c\\u2852\\u2821\\u28c0\\u2899\\u285c\\u2840\\u2813\\u2804\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2877\\u283f\\u28e7\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2823\\u28de\\u2829\\u2825\\u2800\\u283c\\u2884\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2847\\u2800\\u2800\\u2800\\u2809\\u28b9\\u28f6\\u2812\\u2812\\u2802\\u2808\\u2809\\u2801\\u2818\\u2846\\u2800\\u28ff\\u28ff\\u282b\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28b6\\u28e4\\u28c0\\u2840\\u2800\\u2800\\u28b8\\u287f\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u281e\\u2800\\u2800\\u28a1\\u28a8\\u2880\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u2852\\u28ff\\u28bf\\u2864\\u281d\\u2863\\u2809\\u2801\\u281a\\u281b\\u2800\\u2824\\u2824\\u28c4\\u2870\\u2801\\u2800\\u2800\\u2800\\u2809\\u2819\\u28b8\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u2864\\u28af\\u284c\\u287f\\u2847\\u2818\\u2877\\u2800\\u2801\\u2800\\u2800\\u2880\\u28f0\\u2822\\u2832\\u281b\\u28c8\\u28f8\\u2826\\u2824\\u2836\\u2834\\u28ac\\u28d0\\u28ca\\u2842\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28e4\\u286a\\u2857\\u28ab\\u281e\\u2800\\u2806\\u28c0\\u283b\\u2824\\u2834\\u2810\\u281a\\u28c9\\u2880\\u2826\\u2802\\u280b\\u2801\\u2800\\u2801\\u2800\\u2800\\u2800\\u2800\\u288b\\u2809\\u2807\\u2800 \\u2800\\u2800\\u2800\\u2800\\u28c0\\u2864\\u2810\\u2812\\u2818\\u2879\\u2809\\u28b8\\u2807\\u2838\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28e4\\u2834\\u281a\\u2809\\u2808\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u283c\\u2800\\u28fe\\u2800 \\u2800\\u2800\\u2800\\u2870\\u2800\\u2809\\u2809\\u2800\\u2801\\u2800\\u2800\\u2808\\u2887\\u2808\\u2812\\u2812\\u2818\\u2808\\u2880\\u28a1\\u2842\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b0\\u2800\\u28b8\\u2844 \\u2800\\u2800\\u2838\\u28ff\\u28c6\\u2824\\u2880\\u2840\\u2800\\u2800\\u2800\\u2800\\u2898\\u284c\\u2800\\u2800\\u28c0\\u28c0\\u28c0\\u2848\\u28e4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2800\\u28b8\\u2847 \\u2800\\u2800\\u28b8\\u28c0\\u2800\\u2809\\u2812\\u2810\\u281b\\u280b\\u282d\\u282d\\u280d\\u2809\\u281b\\u2812\\u2812\\u2812\\u2800\\u2812\\u281a\\u281b\\u281b\\u281b\\u2829\\u282d\\u282d\\u282d\\u282d\\u2824\\u2824\\u2824\\u2824\\u2824\\u282d\\u282d\\u2809\\u2813\\u2846 \\u2800\\u2800\\u2818\\u283f\\u28f7\\u28f6\\u28e4\\u28e4\\u28c0\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28e4\\u28c4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2819\\u281b\\u281b\\u283b\\u283f\\u28bf\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28f6\\u28e4\\u28e4\\u28c0\\u28c1\\u28db\\u28c3\\u28d2\\u283f\\u283f\\u283f\\u2824\\u2820\\u2804\\u2824\\u2824\\u28a4\\u28db\\u28d3\\u28c2\\u28fb\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2809\\u2809\\u2809\\u2819\\u281b\\u283b\\u283f\\u283f\\u283f\\u28bf\\u28ff\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28fe\\u28ff\\u28ff\\u28ff\\u28ff\\u283f\\u281f\\u2801 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2808\\u2809\\u2809\\u2809\\u2809\\u2801\\u2800\\u2800\\u2800\\u2800\\u2800\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IBigStepper.sol\":\"IBigStepper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"oracle_","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IBigStepper.sol":"IBigStepper"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"notice":"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀ ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀ ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄ ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇ ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆ ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"devdoc":{"version":1,"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"IBigStepper"},"id":162}
{"abi":[{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"oracle_","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"IBigStepper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"notice\":\"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28fc\\u2836\\u2885\\u2812\\u2884\\u2894\\u28f6\\u2866\\u28e4\\u2864\\u2804\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2828\\u284f\\u2800\\u2800\\u2808\\u2822\\u28d9\\u28af\\u28c4\\u2800\\u28a8\\u282f\\u287a\\u2858\\u2884\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28f6\\u2846\\u2800\\u2800\\u2800\\u2800\\u2808\\u2813\\u282c\\u2852\\u2821\\u28c0\\u2899\\u285c\\u2840\\u2813\\u2804\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2877\\u283f\\u28e7\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2823\\u28de\\u2829\\u2825\\u2800\\u283c\\u2884\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2847\\u2800\\u2800\\u2800\\u2809\\u28b9\\u28f6\\u2812\\u2812\\u2802\\u2808\\u2809\\u2801\\u2818\\u2846\\u2800\\u28ff\\u28ff\\u282b\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28b6\\u28e4\\u28c0\\u2840\\u2800\\u2800\\u28b8\\u287f\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u281e\\u2800\\u2800\\u28a1\\u28a8\\u2880\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u2852\\u28ff\\u28bf\\u2864\\u281d\\u2863\\u2809\\u2801\\u281a\\u281b\\u2800\\u2824\\u2824\\u28c4\\u2870\\u2801\\u2800\\u2800\\u2800\\u2809\\u2819\\u28b8\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u2864\\u28af\\u284c\\u287f\\u2847\\u2818\\u2877\\u2800\\u2801\\u2800\\u2800\\u2880\\u28f0\\u2822\\u2832\\u281b\\u28c8\\u28f8\\u2826\\u2824\\u2836\\u2834\\u28ac\\u28d0\\u28ca\\u2842\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28e4\\u286a\\u2857\\u28ab\\u281e\\u2800\\u2806\\u28c0\\u283b\\u2824\\u2834\\u2810\\u281a\\u28c9\\u2880\\u2826\\u2802\\u280b\\u2801\\u2800\\u2801\\u2800\\u2800\\u2800\\u2800\\u288b\\u2809\\u2807\\u2800 \\u2800\\u2800\\u2800\\u2800\\u28c0\\u2864\\u2810\\u2812\\u2818\\u2879\\u2809\\u28b8\\u2807\\u2838\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28e4\\u2834\\u281a\\u2809\\u2808\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u283c\\u2800\\u28fe\\u2800 \\u2800\\u2800\\u2800\\u2870\\u2800\\u2809\\u2809\\u2800\\u2801\\u2800\\u2800\\u2808\\u2887\\u2808\\u2812\\u2812\\u2818\\u2808\\u2880\\u28a1\\u2842\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b0\\u2800\\u28b8\\u2844 \\u2800\\u2800\\u2838\\u28ff\\u28c6\\u2824\\u2880\\u2840\\u2800\\u2800\\u2800\\u2800\\u2898\\u284c\\u2800\\u2800\\u28c0\\u28c0\\u28c0\\u2848\\u28e4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2800\\u28b8\\u2847 \\u2800\\u2800\\u28b8\\u28c0\\u2800\\u2809\\u2812\\u2810\\u281b\\u280b\\u282d\\u282d\\u280d\\u2809\\u281b\\u2812\\u2812\\u2812\\u2800\\u2812\\u281a\\u281b\\u281b\\u281b\\u2829\\u282d\\u282d\\u282d\\u282d\\u2824\\u2824\\u2824\\u2824\\u2824\\u282d\\u282d\\u2809\\u2813\\u2846 \\u2800\\u2800\\u2818\\u283f\\u28f7\\u28f6\\u28e4\\u28e4\\u28c0\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28e4\\u28c4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2819\\u281b\\u281b\\u283b\\u283f\\u28bf\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28f6\\u28e4\\u28e4\\u28c0\\u28c1\\u28db\\u28c3\\u28d2\\u283f\\u283f\\u283f\\u2824\\u2820\\u2804\\u2824\\u2824\\u28a4\\u28db\\u28d3\\u28c2\\u28fb\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2809\\u2809\\u2809\\u2819\\u281b\\u283b\\u283f\\u283f\\u283f\\u28bf\\u28ff\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28fe\\u28ff\\u28ff\\u28ff\\u28ff\\u283f\\u281f\\u2801 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2808\\u2809\\u2809\\u2809\\u2809\\u2801\\u2800\\u2800\\u2800\\u2800\\u2800\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IBigStepper.sol\":\"IBigStepper\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"oracle_","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IBigStepper.sol":"IBigStepper"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"notice":"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀ ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀ ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄ ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇ ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆ ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"devdoc":{"version":1,"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"IBigStepper"},"ast":{"absolutePath":"src/dispute/interfaces/IBigStepper.sol","id":103045,"exportedSymbols":{"IBigStepper":[103044],"IPreimageOracle":[99340]},"nodeType":"SourceUnit","src":"32:3435:174","nodes":[{"id":103021,"nodeType":"PragmaDirective","src":"32:23:174","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":103023,"nodeType":"ImportDirective","src":"57:76:174","nodes":[],"absolutePath":"src/cannon/interfaces/IPreimageOracle.sol","file":"src/cannon/interfaces/IPreimageOracle.sol","nameLocation":"-1:-1:-1","scope":103045,"sourceUnit":99341,"symbolAliases":[{"foreign":{"id":103022,"name":"IPreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99340,"src":"66:15:174","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":103044,"nodeType":"ContractDefinition","src":"2491:975:174","nodes":[{"id":103036,"nodeType":"FunctionDefinition","src":"3150:171:174","nodes":[],"documentation":{"id":103025,"nodeType":"StructuredDocumentation","src":"2519:626:174","text":"@notice Performs the state transition from a given prestate and returns the hash of the post state witness.\n @param _stateData The raw opaque prestate data.\n @param _proof Opaque proof data, can be used to prove things about the prestate in relation to the state of the\n interface's implementation.\n @param _localContext The local key context for the preimage oracle. Optional, can be set as a constant if the\n implementation only requires one set of local keys.\n @return postState_ The hash of the post state witness after the state transition."},"functionSelector":"e14ced32","implemented":false,"kind":"function","modifiers":[],"name":"step","nameLocation":"3159:4:174","parameters":{"id":103032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103027,"mutability":"mutable","name":"_stateData","nameLocation":"3188:10:174","nodeType":"VariableDeclaration","scope":103036,"src":"3173:25:174","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":103026,"name":"bytes","nodeType":"ElementaryTypeName","src":"3173:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":103029,"mutability":"mutable","name":"_proof","nameLocation":"3223:6:174","nodeType":"VariableDeclaration","scope":103036,"src":"3208:21:174","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":103028,"name":"bytes","nodeType":"ElementaryTypeName","src":"3208:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":103031,"mutability":"mutable","name":"_localContext","nameLocation":"3247:13:174","nodeType":"VariableDeclaration","scope":103036,"src":"3239:21:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":103030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3239:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3163:103:174"},"returnParameters":{"id":103035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103034,"mutability":"mutable","name":"postState_","nameLocation":"3309:10:174","nodeType":"VariableDeclaration","scope":103036,"src":"3301:18:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":103033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3301:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3300:20:174"},"scope":103044,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":103043,"nodeType":"FunctionDefinition","src":"3398:66:174","nodes":[],"documentation":{"id":103037,"nodeType":"StructuredDocumentation","src":"3327:66:174","text":"@notice Returns the preimage oracle used by the state machine."},"functionSelector":"7dc0d1d0","implemented":false,"kind":"function","modifiers":[],"name":"oracle","nameLocation":"3407:6:174","parameters":{"id":103038,"nodeType":"ParameterList","parameters":[],"src":"3413:2:174"},"returnParameters":{"id":103042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103041,"mutability":"mutable","name":"oracle_","nameLocation":"3455:7:174","nodeType":"VariableDeclaration","scope":103043,"src":"3439:23:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"},"typeName":{"id":103040,"nodeType":"UserDefinedTypeName","pathNode":{"id":103039,"name":"IPreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":99340,"src":"3439:15:174"},"referencedDeclaration":99340,"src":"3439:15:174","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$99340","typeString":"contract IPreimageOracle"}},"visibility":"internal"}],"src":"3438:25:174"},"scope":103044,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IBigStepper","contractDependencies":[],"contractKind":"interface","documentation":{"id":103024,"nodeType":"StructuredDocumentation","src":"135:2356:174","text":"@title IBigStepper\n @notice Describes a state machine that can perform a single instruction step, provided a prestate and an optional\n proof.\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀\n ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀\n ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄\n ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇\n ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆\n ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇\n ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"fullyImplemented":false,"linearizedBaseContracts":[103044],"name":"IBigStepper","nameLocation":"2501:11:174","scope":103045,"usedErrors":[]}],"license":"MIT"},"id":174}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createdAt()":"cf09e0d0","extraData()":"609d3334","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","resolve()":"2810e1d6","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Resolved(uint8)\":{\"params\":{\"status\":\"The status of the game after resolution.\"}}},\"kind\":\"dev\",\"methods\":{\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}}},\"title\":\"IDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"}},\"notice\":\"The generic interface for a DisputeGame contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IDisputeGame.sol\":\"IDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"version":1},"userdoc":{"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IDisputeGame.sol":"IDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"events":{"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The generic interface for a DisputeGame contract."},"devdoc":{"version":1,"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"events":{"Resolved(uint8)":{"params":{"status":"The status of the game after resolution."}}},"title":"IDisputeGame"},"id":164}
{"abi":[{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameCreator","inputs":[],"outputs":[{"name":"creator_","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createdAt()":"cf09e0d0","extraData()":"609d3334","gameCreator()":"37b1b229","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","l1Head()":"6361506d","resolve()":"2810e1d6","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Resolved(uint8)\":{\"params\":{\"status\":\"The status of the game after resolution.\"}}},\"kind\":\"dev\",\"methods\":{\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #4\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameCreator()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"creator_\":\"The creator of the dispute game.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"l1Head()\":{\"details\":\"`clones-with-immutable-args` argument #3\",\"returns\":{\"l1Head_\":\"The parent hash of the L1 block when the dispute game was created.\"}},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}}},\"title\":\"IDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameCreator()\":{\"notice\":\"Getter for the creator of the dispute game.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"Getter for the parent hash of the L1 block when the dispute game was created.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"}},\"notice\":\"The generic interface for a DisputeGame contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IDisputeGame.sol\":\"IDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090\",\"dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]},\"src/dispute/lib/Types.sol\":{\"keccak256\":\"0x5d6a2b87e0358d54bc22a8fdcfcd17e347bcfa69b774d9c75694e3f843c2c2a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0ea07c78675e3fbfacdf92026ed77cd2b6596b358c09a7f29148b6aa80a6bd\",\"dweb:/ipfs/QmaNVv9NQg1Ea6AoHvv1oZCVX2ZAuwoW5vBMf7cVMvayqC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gameCreator","outputs":[{"internalType":"address","name":"creator_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"pure","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"version":1},"userdoc":{"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IDisputeGame.sol":"IDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0","urls":["bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090","dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"},"src/dispute/lib/Types.sol":{"keccak256":"0x5d6a2b87e0358d54bc22a8fdcfcd17e347bcfa69b774d9c75694e3f843c2c2a8","urls":["bzz-raw://df0ea07c78675e3fbfacdf92026ed77cd2b6596b358c09a7f29148b6aa80a6bd","dweb:/ipfs/QmaNVv9NQg1Ea6AoHvv1oZCVX2ZAuwoW5vBMf7cVMvayqC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"events":{"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The generic interface for a DisputeGame contract."},"devdoc":{"version":1,"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"events":{"Resolved(uint8)":{"params":{"status":"The status of the game after resolution."}}},"title":"IDisputeGame"},"ast":{"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","id":103201,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameStatus":[104208],"GameType":[104188],"GameTypes":[104248],"Hash":[104143],"IDisputeGame":[103200],"IInitializable":[103515],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"LocalPreimageKey":[104304],"OutputRoot":[104214],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173],"VMStatuses":[104282]},"nodeType":"SourceUnit","src":"32:3650:176","nodes":[{"id":103114,"nodeType":"PragmaDirective","src":"32:23:176","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":103116,"nodeType":"ImportDirective","src":"57:75:176","nodes":[],"absolutePath":"src/dispute/interfaces/IInitializable.sol","file":"src/dispute/interfaces/IInitializable.sol","nameLocation":"-1:-1:-1","scope":103201,"sourceUnit":103516,"symbolAliases":[{"foreign":{"id":103115,"name":"IInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103515,"src":"66:14:176","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":103117,"nodeType":"ImportDirective","src":"134:35:176","nodes":[],"absolutePath":"src/dispute/lib/Types.sol","file":"src/dispute/lib/Types.sol","nameLocation":"-1:-1:-1","scope":103201,"sourceUnit":104305,"symbolAliases":[],"unitAlias":""},{"id":103200,"nodeType":"ContractDefinition","src":"257:3424:176","nodes":[{"id":103126,"nodeType":"EventDefinition","src":"418:42:176","nodes":[],"anonymous":false,"documentation":{"id":103121,"nodeType":"StructuredDocumentation","src":"304:109:176","text":"@notice Emitted when the game is resolved.\n @param status The status of the game after resolution."},"eventSelector":"5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60","name":"Resolved","nameLocation":"424:8:176","parameters":{"id":103125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103124,"indexed":true,"mutability":"mutable","name":"status","nameLocation":"452:6:176","nodeType":"VariableDeclaration","scope":103126,"src":"433:25:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"},"typeName":{"id":103123,"nodeType":"UserDefinedTypeName","pathNode":{"id":103122,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":104208,"src":"433:10:176"},"referencedDeclaration":104208,"src":"433:10:176","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"432:27:176"}},{"id":103133,"nodeType":"FunctionDefinition","src":"637:66:176","nodes":[],"documentation":{"id":103127,"nodeType":"StructuredDocumentation","src":"466:166:176","text":"@notice Returns the timestamp that the DisputeGame contract was created at.\n @return createdAt_ The timestamp that the DisputeGame contract was created at."},"functionSelector":"cf09e0d0","implemented":false,"kind":"function","modifiers":[],"name":"createdAt","nameLocation":"646:9:176","parameters":{"id":103128,"nodeType":"ParameterList","parameters":[],"src":"655:2:176"},"returnParameters":{"id":103132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103131,"mutability":"mutable","name":"createdAt_","nameLocation":"691:10:176","nodeType":"VariableDeclaration","scope":103133,"src":"681:20:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":103130,"nodeType":"UserDefinedTypeName","pathNode":{"id":103129,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"681:9:176"},"referencedDeclaration":104158,"src":"681:9:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"680:22:176"},"scope":103200,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":103140,"nodeType":"FunctionDefinition","src":"883:68:176","nodes":[],"documentation":{"id":103134,"nodeType":"StructuredDocumentation","src":"709:169:176","text":"@notice Returns the timestamp that the DisputeGame contract was resolved at.\n @return resolvedAt_ The timestamp that the DisputeGame contract was resolved at."},"functionSelector":"19effeb4","implemented":false,"kind":"function","modifiers":[],"name":"resolvedAt","nameLocation":"892:10:176","parameters":{"id":103135,"nodeType":"ParameterList","parameters":[],"src":"902:2:176"},"returnParameters":{"id":103139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103138,"mutability":"mutable","name":"resolvedAt_","nameLocation":"938:11:176","nodeType":"VariableDeclaration","scope":103140,"src":"928:21:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":103137,"nodeType":"UserDefinedTypeName","pathNode":{"id":103136,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"928:9:176"},"referencedDeclaration":104158,"src":"928:9:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"927:23:176"},"scope":103200,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":103147,"nodeType":"FunctionDefinition","src":"1069:61:176","nodes":[],"documentation":{"id":103141,"nodeType":"StructuredDocumentation","src":"957:107:176","text":"@notice Returns the current status of the game.\n @return status_ The current status of the game."},"functionSelector":"200d2ed2","implemented":false,"kind":"function","modifiers":[],"name":"status","nameLocation":"1078:6:176","parameters":{"id":103142,"nodeType":"ParameterList","parameters":[],"src":"1084:2:176"},"returnParameters":{"id":103146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103145,"mutability":"mutable","name":"status_","nameLocation":"1121:7:176","nodeType":"VariableDeclaration","scope":103147,"src":"1110:18:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"},"typeName":{"id":103144,"nodeType":"UserDefinedTypeName","pathNode":{"id":103143,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":104208,"src":"1110:10:176"},"referencedDeclaration":104208,"src":"1110:10:176","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"1109:20:176"},"scope":103200,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":103154,"nodeType":"FunctionDefinition","src":"1410:63:176","nodes":[],"documentation":{"id":103148,"nodeType":"StructuredDocumentation","src":"1136:269:176","text":"@notice Getter for the game type.\n @dev The reference impl should be entirely different depending on the type (fault, validity)\n i.e. The game type should indicate the security model.\n @return gameType_ The type of proof system being used."},"functionSelector":"bbdc02db","implemented":false,"kind":"function","modifiers":[],"name":"gameType","nameLocation":"1419:8:176","parameters":{"id":103149,"nodeType":"ParameterList","parameters":[],"src":"1427:2:176"},"returnParameters":{"id":103153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103152,"mutability":"mutable","name":"gameType_","nameLocation":"1462:9:176","nodeType":"VariableDeclaration","scope":103154,"src":"1453:18:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":103151,"nodeType":"UserDefinedTypeName","pathNode":{"id":103150,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"1453:8:176"},"referencedDeclaration":104188,"src":"1453:8:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"1452:20:176"},"scope":103200,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":103160,"nodeType":"FunctionDefinition","src":"1651:64:176","nodes":[],"documentation":{"id":103155,"nodeType":"StructuredDocumentation","src":"1479:167:176","text":"@notice Getter for the creator of the dispute game.\n @dev `clones-with-immutable-args` argument #1\n @return creator_ The creator of the dispute game."},"functionSelector":"37b1b229","implemented":false,"kind":"function","modifiers":[],"name":"gameCreator","nameLocation":"1660:11:176","parameters":{"id":103156,"nodeType":"ParameterList","parameters":[],"src":"1671:2:176"},"returnParameters":{"id":103159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103158,"mutability":"mutable","name":"creator_","nameLocation":"1705:8:176","nodeType":"VariableDeclaration","scope":103160,"src":"1697:16:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103157,"name":"address","nodeType":"ElementaryTypeName","src":"1697:7:176","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1696:18:176"},"scope":103200,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":103167,"nodeType":"FunctionDefinition","src":"1880:62:176","nodes":[],"documentation":{"id":103161,"nodeType":"StructuredDocumentation","src":"1721:154:176","text":"@notice Getter for the root claim.\n @dev `clones-with-immutable-args` argument #2\n @return rootClaim_ The root claim of the DisputeGame."},"functionSelector":"bcef3b55","implemented":false,"kind":"function","modifiers":[],"name":"rootClaim","nameLocation":"1889:9:176","parameters":{"id":103162,"nodeType":"ParameterList","parameters":[],"src":"1898:2:176"},"returnParameters":{"id":103166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103165,"mutability":"mutable","name":"rootClaim_","nameLocation":"1930:10:176","nodeType":"VariableDeclaration","scope":103167,"src":"1924:16:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":103164,"nodeType":"UserDefinedTypeName","pathNode":{"id":103163,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"1924:5:176"},"referencedDeclaration":104096,"src":"1924:5:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"1923:18:176"},"scope":103200,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":103174,"nodeType":"FunctionDefinition","src":"2187:55:176","nodes":[],"documentation":{"id":103168,"nodeType":"StructuredDocumentation","src":"1948:234:176","text":"@notice Getter for the parent hash of the L1 block when the dispute game was created.\n @dev `clones-with-immutable-args` argument #3\n @return l1Head_ The parent hash of the L1 block when the dispute game was created."},"functionSelector":"6361506d","implemented":false,"kind":"function","modifiers":[],"name":"l1Head","nameLocation":"2196:6:176","parameters":{"id":103169,"nodeType":"ParameterList","parameters":[],"src":"2202:2:176"},"returnParameters":{"id":103173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103172,"mutability":"mutable","name":"l1Head_","nameLocation":"2233:7:176","nodeType":"VariableDeclaration","scope":103174,"src":"2228:12:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":103171,"nodeType":"UserDefinedTypeName","pathNode":{"id":103170,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"2228:4:176"},"referencedDeclaration":104143,"src":"2228:4:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"2227:14:176"},"scope":103200,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":103180,"nodeType":"FunctionDefinition","src":"2441:69:176","nodes":[],"documentation":{"id":103175,"nodeType":"StructuredDocumentation","src":"2248:188:176","text":"@notice Getter for the extra data.\n @dev `clones-with-immutable-args` argument #4\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"609d3334","implemented":false,"kind":"function","modifiers":[],"name":"extraData","nameLocation":"2450:9:176","parameters":{"id":103176,"nodeType":"ParameterList","parameters":[],"src":"2459:2:176"},"returnParameters":{"id":103179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103178,"mutability":"mutable","name":"extraData_","nameLocation":"2498:10:176","nodeType":"VariableDeclaration","scope":103180,"src":"2485:23:176","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":103177,"name":"bytes","nodeType":"ElementaryTypeName","src":"2485:5:176","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2484:25:176"},"scope":103200,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":103187,"nodeType":"FunctionDefinition","src":"2971:57:176","nodes":[],"documentation":{"id":103181,"nodeType":"StructuredDocumentation","src":"2516:450:176","text":"@notice If all necessary information has been gathered, this function should mark the game\n status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of\n the resolved game. It is at this stage that the bonds should be awarded to the\n necessary parties.\n @dev May only be called if the `status` is `IN_PROGRESS`.\n @return status_ The status of the game after resolution."},"functionSelector":"2810e1d6","implemented":false,"kind":"function","modifiers":[],"name":"resolve","nameLocation":"2980:7:176","parameters":{"id":103182,"nodeType":"ParameterList","parameters":[],"src":"2987:2:176"},"returnParameters":{"id":103186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103185,"mutability":"mutable","name":"status_","nameLocation":"3019:7:176","nodeType":"VariableDeclaration","scope":103187,"src":"3008:18:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"},"typeName":{"id":103184,"nodeType":"UserDefinedTypeName","pathNode":{"id":103183,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":104208,"src":"3008:10:176"},"referencedDeclaration":104208,"src":"3008:10:176","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$104208","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"3007:20:176"},"scope":103200,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":103199,"nodeType":"FunctionDefinition","src":"3573:106:176","nodes":[],"documentation":{"id":103188,"nodeType":"StructuredDocumentation","src":"3034:534:176","text":"@notice A compliant implementation of this interface should return the components of the\n game UUID's preimage provided in the cwia payload. The preimage of the UUID is\n constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes\n concatenation.\n @return gameType_ The type of proof system being used.\n @return rootClaim_ The root claim of the DisputeGame.\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"fa24f743","implemented":false,"kind":"function","modifiers":[],"name":"gameData","nameLocation":"3582:8:176","parameters":{"id":103189,"nodeType":"ParameterList","parameters":[],"src":"3590:2:176"},"returnParameters":{"id":103198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103192,"mutability":"mutable","name":"gameType_","nameLocation":"3625:9:176","nodeType":"VariableDeclaration","scope":103199,"src":"3616:18:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":103191,"nodeType":"UserDefinedTypeName","pathNode":{"id":103190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3616:8:176"},"referencedDeclaration":104188,"src":"3616:8:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":103195,"mutability":"mutable","name":"rootClaim_","nameLocation":"3642:10:176","nodeType":"VariableDeclaration","scope":103199,"src":"3636:16:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":103194,"nodeType":"UserDefinedTypeName","pathNode":{"id":103193,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"3636:5:176"},"referencedDeclaration":104096,"src":"3636:5:176","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":103197,"mutability":"mutable","name":"extraData_","nameLocation":"3667:10:176","nodeType":"VariableDeclaration","scope":103199,"src":"3654:23:176","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":103196,"name":"bytes","nodeType":"ElementaryTypeName","src":"3654:5:176","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3615:63:176"},"scope":103200,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":103119,"name":"IInitializable","nodeType":"IdentifierPath","referencedDeclaration":103515,"src":"283:14:176"},"id":103120,"nodeType":"InheritanceSpecifier","src":"283:14:176"}],"canonicalName":"IDisputeGame","contractDependencies":[],"contractKind":"interface","documentation":{"id":103118,"nodeType":"StructuredDocumentation","src":"171:86:176","text":"@title IDisputeGame\n @notice The generic interface for a DisputeGame contract."},"fullyImplemented":false,"linearizedBaseContracts":[103200,103515],"name":"IDisputeGame","nameLocation":"267:12:176","scope":103201,"usedErrors":[]}],"license":"MIT"},"id":176}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"id":40}
{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","id":49671,"exportedSymbols":{"IERC1271":[49670]},"nodeType":"SourceUnit","src":"92:574:42","nodes":[{"id":49658,"nodeType":"PragmaDirective","src":"92:23:42","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49670,"nodeType":"ContractDefinition","src":"307:358:42","nodes":[{"id":49669,"nodeType":"FunctionDefinition","src":"557:106:42","nodes":[],"documentation":{"id":49660,"nodeType":"StructuredDocumentation","src":"332:220:42","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"566:16:42","parameters":{"id":49665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49662,"mutability":"mutable","name":"hash","nameLocation":"591:4:42","nodeType":"VariableDeclaration","scope":49669,"src":"583:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49664,"mutability":"mutable","name":"signature","nameLocation":"610:9:42","nodeType":"VariableDeclaration","scope":49669,"src":"597:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49663,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:38:42"},"returnParameters":{"id":49668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49667,"mutability":"mutable","name":"magicValue","nameLocation":"651:10:42","nodeType":"VariableDeclaration","scope":49669,"src":"644:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49666,"name":"bytes4","nodeType":"ElementaryTypeName","src":"644:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"643:19:42"},"scope":49670,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":49659,"nodeType":"StructuredDocumentation","src":"117:189:42","text":" @dev Interface of the ERC1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[49670],"name":"IERC1271","nameLocation":"317:8:42","scope":49671,"usedErrors":[]}],"license":"MIT"},"id":42}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"id":0}
{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","id":14,"exportedSymbols":{"IERC1271":[13]},"nodeType":"SourceUnit","src":"92:574:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"92:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":13,"nodeType":"ContractDefinition","src":"307:358:0","nodes":[{"id":12,"nodeType":"FunctionDefinition","src":"557:106:0","nodes":[],"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"332:220:0","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"566:16:0","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"hash","nameLocation":"591:4:0","nodeType":"VariableDeclaration","scope":12,"src":"583:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"signature","nameLocation":"610:9:0","nodeType":"VariableDeclaration","scope":12,"src":"597:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:38:0"},"returnParameters":{"id":11,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"mutability":"mutable","name":"magicValue","nameLocation":"651:10:0","nodeType":"VariableDeclaration","scope":12,"src":"644:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9,"name":"bytes4","nodeType":"ElementaryTypeName","src":"644:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"643:19:0"},"scope":13,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"117:189:0","text":" @dev Interface of the ERC1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[13],"name":"IERC1271","nameLocation":"317:8:0","scope":14,"usedErrors":[]}],"license":"MIT"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":88}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}}},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}}},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","id":32044,"exportedSymbols":{"IERC165":[32043]},"nodeType":"SourceUnit","src":"32:505:17","nodes":[{"id":32034,"nodeType":"PragmaDirective","src":"32:24:17","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":32043,"nodeType":"ContractDefinition","src":"58:478:17","nodes":[{"id":32042,"nodeType":"FunctionDefinition","src":"458:76:17","nodes":[],"documentation":{"id":32035,"nodeType":"StructuredDocumentation","src":"82:371:17","text":"@notice Query if a contract implements an interface\n @param interfaceID The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"467:17:17","parameters":{"id":32038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32037,"mutability":"mutable","name":"interfaceID","nameLocation":"492:11:17","nodeType":"VariableDeclaration","scope":32042,"src":"485:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32036,"name":"bytes4","nodeType":"ElementaryTypeName","src":"485:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"484:20:17"},"returnParameters":{"id":32041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32042,"src":"528:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32039,"name":"bool","nodeType":"ElementaryTypeName","src":"528:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"527:6:17"},"scope":32043,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[32043],"name":"IERC165","nameLocation":"68:7:17","scope":32044,"usedErrors":[]}],"license":"MIT"},"id":17}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":48}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}}},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}}},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","id":32019,"exportedSymbols":{"IERC165":[32018]},"nodeType":"SourceUnit","src":"32:505:16","nodes":[{"id":32009,"nodeType":"PragmaDirective","src":"32:24:16","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":32018,"nodeType":"ContractDefinition","src":"58:478:16","nodes":[{"id":32017,"nodeType":"FunctionDefinition","src":"458:76:16","nodes":[],"documentation":{"id":32010,"nodeType":"StructuredDocumentation","src":"82:371:16","text":"@notice Query if a contract implements an interface\n @param interfaceID The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"467:17:16","parameters":{"id":32013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32012,"mutability":"mutable","name":"interfaceID","nameLocation":"492:11:16","nodeType":"VariableDeclaration","scope":32017,"src":"485:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32011,"name":"bytes4","nodeType":"ElementaryTypeName","src":"485:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"484:20:16"},"returnParameters":{"id":32016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32017,"src":"528:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32014,"name":"bool","nodeType":"ElementaryTypeName","src":"528:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"527:6:16"},"scope":32018,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[32018],"name":"IERC165","nameLocation":"68:7:16","scope":32019,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":16}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":"IERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":37}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":"IERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","id":49466,"exportedSymbols":{"IERC165Upgradeable":[49465]},"nodeType":"SourceUnit","src":"100:764:39","nodes":[{"id":49455,"nodeType":"PragmaDirective","src":"100:23:39","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49465,"nodeType":"ContractDefinition","src":"405:458:39","nodes":[{"id":49464,"nodeType":"FunctionDefinition","src":"785:76:39","nodes":[],"documentation":{"id":49457,"nodeType":"StructuredDocumentation","src":"440:340:39","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"794:17:39","parameters":{"id":49460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49459,"mutability":"mutable","name":"interfaceId","nameLocation":"819:11:39","nodeType":"VariableDeclaration","scope":49464,"src":"812:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49458,"name":"bytes4","nodeType":"ElementaryTypeName","src":"812:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"811:20:39"},"returnParameters":{"id":49463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49464,"src":"855:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49461,"name":"bool","nodeType":"ElementaryTypeName","src":"855:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"854:6:39"},"scope":49465,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":49456,"nodeType":"StructuredDocumentation","src":"125:279:39","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"linearizedBaseContracts":[49465],"name":"IERC165Upgradeable","nameLocation":"415:18:39","scope":49466,"usedErrors":[]}],"license":"MIT"},"id":39}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 standard as defined in the EIP.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}}},"id":44}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 standard as defined in the EIP.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","id":50526,"exportedSymbols":{"IERC20":[50525]},"nodeType":"SourceUnit","src":"106:2661:46","nodes":[{"id":50449,"nodeType":"PragmaDirective","src":"106:23:46","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50525,"nodeType":"ContractDefinition","src":"202:2564:46","nodes":[{"id":50459,"nodeType":"EventDefinition","src":"388:72:46","nodes":[],"anonymous":false,"documentation":{"id":50451,"nodeType":"StructuredDocumentation","src":"225:158:46","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"394:8:46","parameters":{"id":50458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50453,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:46","nodeType":"VariableDeclaration","scope":50459,"src":"403:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50452,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50455,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:46","nodeType":"VariableDeclaration","scope":50459,"src":"425:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50454,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50457,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:46","nodeType":"VariableDeclaration","scope":50459,"src":"445:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50456,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:46"}},{"id":50468,"nodeType":"EventDefinition","src":"619:78:46","nodes":[],"anonymous":false,"documentation":{"id":50460,"nodeType":"StructuredDocumentation","src":"466:148:46","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"625:8:46","parameters":{"id":50467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50462,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:46","nodeType":"VariableDeclaration","scope":50468,"src":"634:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50461,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50464,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:46","nodeType":"VariableDeclaration","scope":50468,"src":"657:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50463,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50466,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:46","nodeType":"VariableDeclaration","scope":50468,"src":"682:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50465,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:46"}},{"id":50474,"nodeType":"FunctionDefinition","src":"774:55:46","nodes":[],"documentation":{"id":50469,"nodeType":"StructuredDocumentation","src":"703:66:46","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:46","parameters":{"id":50470,"nodeType":"ParameterList","parameters":[],"src":"794:2:46"},"returnParameters":{"id":50473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50474,"src":"820:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50471,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:46"},"scope":50525,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50482,"nodeType":"FunctionDefinition","src":"912:68:46","nodes":[],"documentation":{"id":50475,"nodeType":"StructuredDocumentation","src":"835:72:46","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:46","parameters":{"id":50478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50477,"mutability":"mutable","name":"account","nameLocation":"939:7:46","nodeType":"VariableDeclaration","scope":50482,"src":"931:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50476,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:46"},"returnParameters":{"id":50481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50482,"src":"971:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50479,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:46"},"scope":50525,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50492,"nodeType":"FunctionDefinition","src":"1193:70:46","nodes":[],"documentation":{"id":50483,"nodeType":"StructuredDocumentation","src":"986:202:46","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:46","parameters":{"id":50488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50485,"mutability":"mutable","name":"to","nameLocation":"1219:2:46","nodeType":"VariableDeclaration","scope":50492,"src":"1211:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50484,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50487,"mutability":"mutable","name":"amount","nameLocation":"1231:6:46","nodeType":"VariableDeclaration","scope":50492,"src":"1223:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:46"},"returnParameters":{"id":50491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50492,"src":"1257:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50489,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:46"},"scope":50525,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50502,"nodeType":"FunctionDefinition","src":"1538:83:46","nodes":[],"documentation":{"id":50493,"nodeType":"StructuredDocumentation","src":"1269:264:46","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:46","parameters":{"id":50498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50495,"mutability":"mutable","name":"owner","nameLocation":"1565:5:46","nodeType":"VariableDeclaration","scope":50502,"src":"1557:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50494,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50497,"mutability":"mutable","name":"spender","nameLocation":"1580:7:46","nodeType":"VariableDeclaration","scope":50502,"src":"1572:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50496,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:46"},"returnParameters":{"id":50501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50502,"src":"1612:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:46"},"scope":50525,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50512,"nodeType":"FunctionDefinition","src":"2274:74:46","nodes":[],"documentation":{"id":50503,"nodeType":"StructuredDocumentation","src":"1627:642:46","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:46","parameters":{"id":50508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50505,"mutability":"mutable","name":"spender","nameLocation":"2299:7:46","nodeType":"VariableDeclaration","scope":50512,"src":"2291:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50504,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50507,"mutability":"mutable","name":"amount","nameLocation":"2316:6:46","nodeType":"VariableDeclaration","scope":50512,"src":"2308:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50506,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:46"},"returnParameters":{"id":50511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50512,"src":"2342:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50509,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:46"},"scope":50525,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50524,"nodeType":"FunctionDefinition","src":"2646:118:46","nodes":[],"documentation":{"id":50513,"nodeType":"StructuredDocumentation","src":"2354:287:46","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:46","parameters":{"id":50520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50515,"mutability":"mutable","name":"from","nameLocation":"2685:4:46","nodeType":"VariableDeclaration","scope":50524,"src":"2677:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50514,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50517,"mutability":"mutable","name":"to","nameLocation":"2707:2:46","nodeType":"VariableDeclaration","scope":50524,"src":"2699:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50516,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50519,"mutability":"mutable","name":"amount","nameLocation":"2727:6:46","nodeType":"VariableDeclaration","scope":50524,"src":"2719:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50518,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:46"},"returnParameters":{"id":50523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50524,"src":"2758:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50521,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:46"},"scope":50525,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":50450,"nodeType":"StructuredDocumentation","src":"131:70:46","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[50525],"name":"IERC20","nameLocation":"212:6:46","scope":50526,"usedErrors":[]}],"license":"MIT"},"id":46}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}}},"id":47}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":51232,"exportedSymbols":{"IERC20":[50525],"IERC20Metadata":[51231]},"nodeType":"SourceUnit","src":"110:573:49","nodes":[{"id":51208,"nodeType":"PragmaDirective","src":"110:23:49","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51209,"nodeType":"ImportDirective","src":"135:23:49","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":51232,"sourceUnit":50526,"symbolAliases":[],"unitAlias":""},{"id":51231,"nodeType":"ContractDefinition","src":"277:405:49","nodes":[{"id":51218,"nodeType":"FunctionDefinition","src":"377:54:49","nodes":[],"documentation":{"id":51213,"nodeType":"StructuredDocumentation","src":"318:54:49","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:49","parameters":{"id":51214,"nodeType":"ParameterList","parameters":[],"src":"390:2:49"},"returnParameters":{"id":51217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51218,"src":"416:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51215,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:49"},"scope":51231,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51224,"nodeType":"FunctionDefinition","src":"498:56:49","nodes":[],"documentation":{"id":51219,"nodeType":"StructuredDocumentation","src":"437:56:49","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:49","parameters":{"id":51220,"nodeType":"ParameterList","parameters":[],"src":"513:2:49"},"returnParameters":{"id":51223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51224,"src":"539:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51221,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:49"},"scope":51231,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51230,"nodeType":"FunctionDefinition","src":"630:50:49","nodes":[],"documentation":{"id":51225,"nodeType":"StructuredDocumentation","src":"560:65:49","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:49","parameters":{"id":51226,"nodeType":"ParameterList","parameters":[],"src":"647:2:49"},"returnParameters":{"id":51229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51230,"src":"673:5:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51227,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:49"},"scope":51231,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51211,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":50525,"src":"305:6:49"},"id":51212,"nodeType":"InheritanceSpecifier","src":"305:6:49"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":51210,"nodeType":"StructuredDocumentation","src":"160:116:49","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[51231,50525],"name":"IERC20Metadata","nameLocation":"287:14:49","scope":51232,"usedErrors":[]}],"license":"MIT"},"id":49}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"id":56}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","id":53118,"exportedSymbols":{"IERC165":[54589],"IERC721":[52703],"IERC721Metadata":[53117]},"nodeType":"SourceUnit","src":"112:649:58","nodes":[{"id":53092,"nodeType":"PragmaDirective","src":"112:23:58","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53093,"nodeType":"ImportDirective","src":"137:24:58","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","nameLocation":"-1:-1:-1","scope":53118,"sourceUnit":52704,"symbolAliases":[],"unitAlias":""},{"id":53117,"nodeType":"ContractDefinition","src":"297:463:58","nodes":[{"id":53102,"nodeType":"FunctionDefinition","src":"403:54:58","nodes":[],"documentation":{"id":53097,"nodeType":"StructuredDocumentation","src":"340:58:58","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:58","parameters":{"id":53098,"nodeType":"ParameterList","parameters":[],"src":"416:2:58"},"returnParameters":{"id":53101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53102,"src":"442:13:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53099,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:58"},"scope":53117,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53108,"nodeType":"FunctionDefinition","src":"528:56:58","nodes":[],"documentation":{"id":53103,"nodeType":"StructuredDocumentation","src":"463:60:58","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:58","parameters":{"id":53104,"nodeType":"ParameterList","parameters":[],"src":"543:2:58"},"returnParameters":{"id":53107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53108,"src":"569:13:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53105,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:58"},"scope":53117,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53116,"nodeType":"FunctionDefinition","src":"685:73:58","nodes":[],"documentation":{"id":53109,"nodeType":"StructuredDocumentation","src":"590:90:58","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:58","parameters":{"id":53112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53111,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:58","nodeType":"VariableDeclaration","scope":53116,"src":"703:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53110,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:58"},"returnParameters":{"id":53115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53116,"src":"743:13:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53113,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:58"},"scope":53117,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":53095,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":52703,"src":"326:7:58"},"id":53096,"nodeType":"InheritanceSpecifier","src":"326:7:58"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":53094,"nodeType":"StructuredDocumentation","src":"163:133:58","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"linearizedBaseContracts":[53117,52703,54589],"name":"IERC721Metadata","nameLocation":"307:15:58","scope":53118,"usedErrors":[]}],"license":"MIT"},"id":58}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":"IERC721MetadataUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"id":30}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":"IERC721MetadataUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","id":48361,"exportedSymbols":{"IERC165Upgradeable":[49465],"IERC721MetadataUpgradeable":[48360],"IERC721Upgradeable":[48283]},"nodeType":"SourceUnit","src":"112:682:32","nodes":[{"id":48335,"nodeType":"PragmaDirective","src":"112:23:32","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48336,"nodeType":"ImportDirective","src":"137:35:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol","file":"../IERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":48361,"sourceUnit":48284,"symbolAliases":[],"unitAlias":""},{"id":48360,"nodeType":"ContractDefinition","src":"308:485:32","nodes":[{"id":48345,"nodeType":"FunctionDefinition","src":"436:54:32","nodes":[],"documentation":{"id":48340,"nodeType":"StructuredDocumentation","src":"373:58:32","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"445:4:32","parameters":{"id":48341,"nodeType":"ParameterList","parameters":[],"src":"449:2:32"},"returnParameters":{"id":48344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48345,"src":"475:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48342,"name":"string","nodeType":"ElementaryTypeName","src":"475:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"474:15:32"},"scope":48360,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48351,"nodeType":"FunctionDefinition","src":"561:56:32","nodes":[],"documentation":{"id":48346,"nodeType":"StructuredDocumentation","src":"496:60:32","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"570:6:32","parameters":{"id":48347,"nodeType":"ParameterList","parameters":[],"src":"576:2:32"},"returnParameters":{"id":48350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48351,"src":"602:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48348,"name":"string","nodeType":"ElementaryTypeName","src":"602:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"601:15:32"},"scope":48360,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48359,"nodeType":"FunctionDefinition","src":"718:73:32","nodes":[],"documentation":{"id":48352,"nodeType":"StructuredDocumentation","src":"623:90:32","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"727:8:32","parameters":{"id":48355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48354,"mutability":"mutable","name":"tokenId","nameLocation":"744:7:32","nodeType":"VariableDeclaration","scope":48359,"src":"736:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48353,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"735:17:32"},"returnParameters":{"id":48358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48359,"src":"776:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48356,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"775:15:32"},"scope":48360,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":48338,"name":"IERC721Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":48283,"src":"348:18:32"},"id":48339,"nodeType":"InheritanceSpecifier","src":"348:18:32"}],"canonicalName":"IERC721MetadataUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":48337,"nodeType":"StructuredDocumentation","src":"174:133:32","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"linearizedBaseContracts":[48360,48283,49465],"name":"IERC721MetadataUpgradeable","nameLocation":"318:26:32","scope":48361,"usedErrors":[]}],"license":"MIT"},"id":32}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"id":53}
{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","id":52722,"exportedSymbols":{"IERC721Receiver":[52721]},"nodeType":"SourceUnit","src":"116:871:55","nodes":[{"id":52705,"nodeType":"PragmaDirective","src":"116:23:55","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52721,"nodeType":"ContractDefinition","src":"294:692:55","nodes":[{"id":52720,"nodeType":"FunctionDefinition","src":"824:160:55","nodes":[],"documentation":{"id":52707,"nodeType":"StructuredDocumentation","src":"326:493:55","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:55","parameters":{"id":52716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52709,"mutability":"mutable","name":"operator","nameLocation":"867:8:55","nodeType":"VariableDeclaration","scope":52720,"src":"859:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52708,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52711,"mutability":"mutable","name":"from","nameLocation":"893:4:55","nodeType":"VariableDeclaration","scope":52720,"src":"885:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52710,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52713,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:55","nodeType":"VariableDeclaration","scope":52720,"src":"907:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52712,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52715,"mutability":"mutable","name":"data","nameLocation":"947:4:55","nodeType":"VariableDeclaration","scope":52720,"src":"932:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":52714,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:55"},"returnParameters":{"id":52719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52720,"src":"976:6:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52717,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:55"},"scope":52721,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":52706,"nodeType":"StructuredDocumentation","src":"141:152:55","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"linearizedBaseContracts":[52721],"name":"IERC721Receiver","nameLocation":"304:15:55","scope":52722,"usedErrors":[]}],"license":"MIT"},"id":55}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":"IERC721ReceiverUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"id":27}
{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":"IERC721ReceiverUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol","id":48168,"exportedSymbols":{"IERC721ReceiverUpgradeable":[48167]},"nodeType":"SourceUnit","src":"116:882:29","nodes":[{"id":48151,"nodeType":"PragmaDirective","src":"116:23:29","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48167,"nodeType":"ContractDefinition","src":"294:703:29","nodes":[{"id":48166,"nodeType":"FunctionDefinition","src":"835:160:29","nodes":[],"documentation":{"id":48153,"nodeType":"StructuredDocumentation","src":"337:493:29","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"844:16:29","parameters":{"id":48162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48155,"mutability":"mutable","name":"operator","nameLocation":"878:8:29","nodeType":"VariableDeclaration","scope":48166,"src":"870:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48154,"name":"address","nodeType":"ElementaryTypeName","src":"870:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48157,"mutability":"mutable","name":"from","nameLocation":"904:4:29","nodeType":"VariableDeclaration","scope":48166,"src":"896:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48156,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48159,"mutability":"mutable","name":"tokenId","nameLocation":"926:7:29","nodeType":"VariableDeclaration","scope":48166,"src":"918:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48158,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48161,"mutability":"mutable","name":"data","nameLocation":"958:4:29","nodeType":"VariableDeclaration","scope":48166,"src":"943:19:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48160,"name":"bytes","nodeType":"ElementaryTypeName","src":"943:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"860:108:29"},"returnParameters":{"id":48165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48166,"src":"987:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":48163,"name":"bytes4","nodeType":"ElementaryTypeName","src":"987:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"986:8:29"},"scope":48167,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721ReceiverUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":48152,"nodeType":"StructuredDocumentation","src":"141:152:29","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"linearizedBaseContracts":[48167],"name":"IERC721ReceiverUpgradeable","nameLocation":"304:26:29","scope":48168,"usedErrors":[]}],"license":"MIT"},"id":29}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":"IERC721Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"id":28}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":"IERC721Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol","id":48284,"exportedSymbols":{"IERC165Upgradeable":[49465],"IERC721Upgradeable":[48283]},"nodeType":"SourceUnit","src":"108:4673:30","nodes":[{"id":48169,"nodeType":"PragmaDirective","src":"108:23:30","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48170,"nodeType":"ImportDirective","src":"133:58:30","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","file":"../../utils/introspection/IERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":48284,"sourceUnit":49466,"symbolAliases":[],"unitAlias":""},{"id":48283,"nodeType":"ContractDefinition","src":"261:4519:30","nodes":[{"id":48182,"nodeType":"EventDefinition","src":"411:82:30","nodes":[],"anonymous":false,"documentation":{"id":48174,"nodeType":"StructuredDocumentation","src":"318:88:30","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"417:8:30","parameters":{"id":48181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48176,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"442:4:30","nodeType":"VariableDeclaration","scope":48182,"src":"426:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48175,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48178,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"464:2:30","nodeType":"VariableDeclaration","scope":48182,"src":"448:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48177,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48180,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"484:7:30","nodeType":"VariableDeclaration","scope":48182,"src":"468:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48179,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:67:30"}},{"id":48191,"nodeType":"EventDefinition","src":"598:89:30","nodes":[],"anonymous":false,"documentation":{"id":48183,"nodeType":"StructuredDocumentation","src":"499:94:30","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"604:8:30","parameters":{"id":48190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48185,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"629:5:30","nodeType":"VariableDeclaration","scope":48191,"src":"613:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48184,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48187,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"652:8:30","nodeType":"VariableDeclaration","scope":48191,"src":"636:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48186,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48189,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"678:7:30","nodeType":"VariableDeclaration","scope":48191,"src":"662:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48188,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"612:74:30"}},{"id":48200,"nodeType":"EventDefinition","src":"815:85:30","nodes":[],"anonymous":false,"documentation":{"id":48192,"nodeType":"StructuredDocumentation","src":"693:117:30","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"821:14:30","parameters":{"id":48199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48194,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"852:5:30","nodeType":"VariableDeclaration","scope":48200,"src":"836:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48193,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48196,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"875:8:30","nodeType":"VariableDeclaration","scope":48200,"src":"859:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48195,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48198,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"890:8:30","nodeType":"VariableDeclaration","scope":48200,"src":"885:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48197,"name":"bool","nodeType":"ElementaryTypeName","src":"885:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"835:64:30"}},{"id":48208,"nodeType":"FunctionDefinition","src":"987:74:30","nodes":[],"documentation":{"id":48201,"nodeType":"StructuredDocumentation","src":"906:76:30","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"996:9:30","parameters":{"id":48204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48203,"mutability":"mutable","name":"owner","nameLocation":"1014:5:30","nodeType":"VariableDeclaration","scope":48208,"src":"1006:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48202,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:15:30"},"returnParameters":{"id":48207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48206,"mutability":"mutable","name":"balance","nameLocation":"1052:7:30","nodeType":"VariableDeclaration","scope":48208,"src":"1044:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1043:17:30"},"scope":48283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48216,"nodeType":"FunctionDefinition","src":"1203:72:30","nodes":[],"documentation":{"id":48209,"nodeType":"StructuredDocumentation","src":"1067:131:30","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1212:7:30","parameters":{"id":48212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48211,"mutability":"mutable","name":"tokenId","nameLocation":"1228:7:30","nodeType":"VariableDeclaration","scope":48216,"src":"1220:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:17:30"},"returnParameters":{"id":48215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48214,"mutability":"mutable","name":"owner","nameLocation":"1268:5:30","nodeType":"VariableDeclaration","scope":48216,"src":"1260:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48213,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1259:15:30"},"scope":48283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48228,"nodeType":"FunctionDefinition","src":"1842:137:30","nodes":[],"documentation":{"id":48217,"nodeType":"StructuredDocumentation","src":"1281:556:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1851:16:30","parameters":{"id":48226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48219,"mutability":"mutable","name":"from","nameLocation":"1885:4:30","nodeType":"VariableDeclaration","scope":48228,"src":"1877:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48218,"name":"address","nodeType":"ElementaryTypeName","src":"1877:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48221,"mutability":"mutable","name":"to","nameLocation":"1907:2:30","nodeType":"VariableDeclaration","scope":48228,"src":"1899:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48220,"name":"address","nodeType":"ElementaryTypeName","src":"1899:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48223,"mutability":"mutable","name":"tokenId","nameLocation":"1927:7:30","nodeType":"VariableDeclaration","scope":48228,"src":"1919:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48225,"mutability":"mutable","name":"data","nameLocation":"1959:4:30","nodeType":"VariableDeclaration","scope":48228,"src":"1944:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48224,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1867:102:30"},"returnParameters":{"id":48227,"nodeType":"ParameterList","parameters":[],"src":"1978:0:30"},"scope":48283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48238,"nodeType":"FunctionDefinition","src":"2677:108:30","nodes":[],"documentation":{"id":48229,"nodeType":"StructuredDocumentation","src":"1985:687:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2686:16:30","parameters":{"id":48236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48231,"mutability":"mutable","name":"from","nameLocation":"2720:4:30","nodeType":"VariableDeclaration","scope":48238,"src":"2712:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48230,"name":"address","nodeType":"ElementaryTypeName","src":"2712:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48233,"mutability":"mutable","name":"to","nameLocation":"2742:2:30","nodeType":"VariableDeclaration","scope":48238,"src":"2734:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48232,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48235,"mutability":"mutable","name":"tokenId","nameLocation":"2762:7:30","nodeType":"VariableDeclaration","scope":48238,"src":"2754:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48234,"name":"uint256","nodeType":"ElementaryTypeName","src":"2754:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2702:73:30"},"returnParameters":{"id":48237,"nodeType":"ParameterList","parameters":[],"src":"2784:0:30"},"scope":48283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48248,"nodeType":"FunctionDefinition","src":"3300:104:30","nodes":[],"documentation":{"id":48239,"nodeType":"StructuredDocumentation","src":"2791:504:30","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3309:12:30","parameters":{"id":48246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48241,"mutability":"mutable","name":"from","nameLocation":"3339:4:30","nodeType":"VariableDeclaration","scope":48248,"src":"3331:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48240,"name":"address","nodeType":"ElementaryTypeName","src":"3331:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48243,"mutability":"mutable","name":"to","nameLocation":"3361:2:30","nodeType":"VariableDeclaration","scope":48248,"src":"3353:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48242,"name":"address","nodeType":"ElementaryTypeName","src":"3353:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48245,"mutability":"mutable","name":"tokenId","nameLocation":"3381:7:30","nodeType":"VariableDeclaration","scope":48248,"src":"3373:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48244,"name":"uint256","nodeType":"ElementaryTypeName","src":"3373:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3321:73:30"},"returnParameters":{"id":48247,"nodeType":"ParameterList","parameters":[],"src":"3403:0:30"},"scope":48283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48256,"nodeType":"FunctionDefinition","src":"3867:55:30","nodes":[],"documentation":{"id":48249,"nodeType":"StructuredDocumentation","src":"3410:452:30","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3876:7:30","parameters":{"id":48254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48251,"mutability":"mutable","name":"to","nameLocation":"3892:2:30","nodeType":"VariableDeclaration","scope":48256,"src":"3884:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48250,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48253,"mutability":"mutable","name":"tokenId","nameLocation":"3904:7:30","nodeType":"VariableDeclaration","scope":48256,"src":"3896:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48252,"name":"uint256","nodeType":"ElementaryTypeName","src":"3896:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3883:29:30"},"returnParameters":{"id":48255,"nodeType":"ParameterList","parameters":[],"src":"3921:0:30"},"scope":48283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48264,"nodeType":"FunctionDefinition","src":"4242:70:30","nodes":[],"documentation":{"id":48257,"nodeType":"StructuredDocumentation","src":"3928:309:30","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4251:17:30","parameters":{"id":48262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48259,"mutability":"mutable","name":"operator","nameLocation":"4277:8:30","nodeType":"VariableDeclaration","scope":48264,"src":"4269:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48258,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48261,"mutability":"mutable","name":"_approved","nameLocation":"4292:9:30","nodeType":"VariableDeclaration","scope":48264,"src":"4287:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48260,"name":"bool","nodeType":"ElementaryTypeName","src":"4287:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4268:34:30"},"returnParameters":{"id":48263,"nodeType":"ParameterList","parameters":[],"src":"4311:0:30"},"scope":48283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48272,"nodeType":"FunctionDefinition","src":"4462:79:30","nodes":[],"documentation":{"id":48265,"nodeType":"StructuredDocumentation","src":"4318:139:30","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4471:11:30","parameters":{"id":48268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48267,"mutability":"mutable","name":"tokenId","nameLocation":"4491:7:30","nodeType":"VariableDeclaration","scope":48272,"src":"4483:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48266,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4482:17:30"},"returnParameters":{"id":48271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48270,"mutability":"mutable","name":"operator","nameLocation":"4531:8:30","nodeType":"VariableDeclaration","scope":48272,"src":"4523:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48269,"name":"address","nodeType":"ElementaryTypeName","src":"4523:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4522:18:30"},"scope":48283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48282,"nodeType":"FunctionDefinition","src":"4690:88:30","nodes":[],"documentation":{"id":48273,"nodeType":"StructuredDocumentation","src":"4547:138:30","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4699:16:30","parameters":{"id":48278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48275,"mutability":"mutable","name":"owner","nameLocation":"4724:5:30","nodeType":"VariableDeclaration","scope":48282,"src":"4716:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48274,"name":"address","nodeType":"ElementaryTypeName","src":"4716:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48277,"mutability":"mutable","name":"operator","nameLocation":"4739:8:30","nodeType":"VariableDeclaration","scope":48282,"src":"4731:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48276,"name":"address","nodeType":"ElementaryTypeName","src":"4731:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4715:33:30"},"returnParameters":{"id":48281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48282,"src":"4772:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48279,"name":"bool","nodeType":"ElementaryTypeName","src":"4772:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4771:6:30"},"scope":48283,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":48172,"name":"IERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":49465,"src":"293:18:30"},"id":48173,"nodeType":"InheritanceSpecifier","src":"293:18:30"}],"canonicalName":"IERC721Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":48171,"nodeType":"StructuredDocumentation","src":"193:67:30","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"linearizedBaseContracts":[48283,49465],"name":"IERC721Upgradeable","nameLocation":"271:18:30","scope":48284,"usedErrors":[]}],"license":"MIT"},"id":30}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"_0\":\"valid_ True if the drip parameters are valid.\"}}},\"title\":\"IFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"Interface for faucet authentication modules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":\"IFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":"IFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"Interface for faucet authentication modules."},"devdoc":{"version":1,"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"title":"IFaucetAuthModule"},"id":212}
{"abi":[{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"gasLimit","type":"uint32","internalType":"uint32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"verify((address,bytes,bytes32,uint32),bytes32,bytes)":"d855814f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"verify((address,bytes,bytes32,uint32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"_0\":\"valid_ True if the drip parameters are valid.\"}}},\"title\":\"IFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,bytes,bytes32,uint32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"Interface for faucet authentication modules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":\"IFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9\",\"dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":"IFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3","urls":["bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9","dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"Interface for faucet authentication modules."},"devdoc":{"version":1,"kind":"dev","methods":{"verify((address,bytes,bytes32,uint32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"title":"IFaucetAuthModule"},"ast":{"absolutePath":"src/periphery/faucet/authmodules/IFaucetAuthModule.sol","id":111582,"exportedSymbols":{"Faucet":[111476],"IFaucetAuthModule":[111581]},"nodeType":"SourceUnit","src":"32:647:228","nodes":[{"id":111564,"nodeType":"PragmaDirective","src":"32:23:228","nodes":[],"literals":["solidity","0.8",".15"]},{"id":111566,"nodeType":"ImportDirective","src":"57:39:228","nodes":[],"absolutePath":"src/periphery/faucet/Faucet.sol","file":"../Faucet.sol","nameLocation":"-1:-1:-1","scope":111582,"sourceUnit":111477,"symbolAliases":[{"foreign":{"id":111565,"name":"Faucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111476,"src":"66:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":111581,"nodeType":"ContractDefinition","src":"185:493:228","nodes":[{"id":111580,"nodeType":"FunctionDefinition","src":"505:171:228","nodes":[],"documentation":{"id":111568,"nodeType":"StructuredDocumentation","src":"219:281:228","text":"@notice Verifies that the given drip parameters are valid.\n @param _params Drip parameters to verify.\n @param _id Authentication ID to verify.\n @param _proof Authentication proof to verify.\n @return valid_ True if the drip parameters are valid."},"functionSelector":"d855814f","implemented":false,"kind":"function","modifiers":[],"name":"verify","nameLocation":"514:6:228","parameters":{"id":111576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111571,"mutability":"mutable","name":"_params","nameLocation":"559:7:228","nodeType":"VariableDeclaration","scope":111580,"src":"530:36:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_memory_ptr","typeString":"struct Faucet.DripParameters"},"typeName":{"id":111570,"nodeType":"UserDefinedTypeName","pathNode":{"id":111569,"name":"Faucet.DripParameters","nodeType":"IdentifierPath","referencedDeclaration":111227,"src":"530:21:228"},"referencedDeclaration":111227,"src":"530:21:228","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$111227_storage_ptr","typeString":"struct Faucet.DripParameters"}},"visibility":"internal"},{"constant":false,"id":111573,"mutability":"mutable","name":"_id","nameLocation":"584:3:228","nodeType":"VariableDeclaration","scope":111580,"src":"576:11:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":111572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"576:7:228","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":111575,"mutability":"mutable","name":"_proof","nameLocation":"610:6:228","nodeType":"VariableDeclaration","scope":111580,"src":"597:19:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111574,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"520:102:228"},"returnParameters":{"id":111579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111580,"src":"670:4:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":111577,"name":"bool","nodeType":"ElementaryTypeName","src":"670:4:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"669:6:228"},"scope":111581,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IFaucetAuthModule","contractDependencies":[],"contractKind":"interface","documentation":{"id":111567,"nodeType":"StructuredDocumentation","src":"98:87:228","text":"@title IFaucetAuthModule\n @notice Interface for faucet authentication modules."},"fullyImplemented":false,"linearizedBaseContracts":[111581],"name":"IFaucetAuthModule","nameLocation":"195:17:228","scope":111582,"usedErrors":[]}],"license":"MIT"},"id":228}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"initialize()\":{\"details\":\"This function may only be called once.\"}},\"title\":\"IInitializable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize()\":{\"notice\":\"Initializes the contract.\"}},\"notice\":\"An interface for initializable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IInitializable.sol\":\"IInitializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"}],"devdoc":{"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IInitializable.sol":"IInitializable"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"notice":"An interface for initializable contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"title":"IInitializable"},"id":167}
{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"initialize()\":{\"details\":\"This function may only be called once.\"}},\"title\":\"IInitializable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize()\":{\"notice\":\"Initializes the contract.\"}},\"notice\":\"An interface for initializable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IInitializable.sol\":\"IInitializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"}],"devdoc":{"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IInitializable.sol":"IInitializable"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"notice":"An interface for initializable contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"title":"IInitializable"},"ast":{"absolutePath":"src/dispute/interfaces/IInitializable.sol","id":103516,"exportedSymbols":{"IInitializable":[103515]},"nodeType":"SourceUnit","src":"32:272:179","nodes":[{"id":103509,"nodeType":"PragmaDirective","src":"32:23:179","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":103515,"nodeType":"ContractDefinition","src":"137:166:179","nodes":[{"id":103514,"nodeType":"FunctionDefinition","src":"262:39:179","nodes":[],"documentation":{"id":103511,"nodeType":"StructuredDocumentation","src":"168:89:179","text":"@notice Initializes the contract.\n @dev This function may only be called once."},"functionSelector":"8129fc1c","implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"271:10:179","parameters":{"id":103512,"nodeType":"ParameterList","parameters":[],"src":"281:2:179"},"returnParameters":{"id":103513,"nodeType":"ParameterList","parameters":[],"src":"300:0:179"},"scope":103515,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IInitializable","contractDependencies":[],"contractKind":"interface","documentation":{"id":103510,"nodeType":"StructuredDocumentation","src":"57:80:179","text":"@title IInitializable\n @notice An interface for initializable contracts."},"fullyImplemented":false,"linearizedBaseContracts":[103515],"name":"IInitializable","nameLocation":"147:14:179","scope":103516,"usedErrors":[]}],"license":"MIT"},"id":179}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":18}
{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","id":32487,"exportedSymbols":{"IMulticall3":[32486]},"nodeType":"SourceUnit","src":"32:2153:20","nodes":[{"id":32325,"nodeType":"PragmaDirective","src":"32:31:20","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32326,"nodeType":"PragmaDirective","src":"65:33:20","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":32486,"nodeType":"ContractDefinition","src":"100:2084:20","nodes":[{"id":32331,"nodeType":"StructDefinition","src":"128:67:20","nodes":[],"canonicalName":"IMulticall3.Call","members":[{"constant":false,"id":32328,"mutability":"mutable","name":"target","nameLocation":"158:6:20","nodeType":"VariableDeclaration","scope":32331,"src":"150:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32327,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32330,"mutability":"mutable","name":"callData","nameLocation":"180:8:20","nodeType":"VariableDeclaration","scope":32331,"src":"174:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32329,"name":"bytes","nodeType":"ElementaryTypeName","src":"174:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call","nameLocation":"135:4:20","scope":32486,"visibility":"public"},{"id":32338,"nodeType":"StructDefinition","src":"201:95:20","nodes":[],"canonicalName":"IMulticall3.Call3","members":[{"constant":false,"id":32333,"mutability":"mutable","name":"target","nameLocation":"232:6:20","nodeType":"VariableDeclaration","scope":32338,"src":"224:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32332,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32335,"mutability":"mutable","name":"allowFailure","nameLocation":"253:12:20","nodeType":"VariableDeclaration","scope":32338,"src":"248:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32334,"name":"bool","nodeType":"ElementaryTypeName","src":"248:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32337,"mutability":"mutable","name":"callData","nameLocation":"281:8:20","nodeType":"VariableDeclaration","scope":32338,"src":"275:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32336,"name":"bytes","nodeType":"ElementaryTypeName","src":"275:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3","nameLocation":"208:5:20","scope":32486,"visibility":"public"},{"id":32347,"nodeType":"StructDefinition","src":"302:123:20","nodes":[],"canonicalName":"IMulticall3.Call3Value","members":[{"constant":false,"id":32340,"mutability":"mutable","name":"target","nameLocation":"338:6:20","nodeType":"VariableDeclaration","scope":32347,"src":"330:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32339,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32342,"mutability":"mutable","name":"allowFailure","nameLocation":"359:12:20","nodeType":"VariableDeclaration","scope":32347,"src":"354:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32341,"name":"bool","nodeType":"ElementaryTypeName","src":"354:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32344,"mutability":"mutable","name":"value","nameLocation":"389:5:20","nodeType":"VariableDeclaration","scope":32347,"src":"381:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32343,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32346,"mutability":"mutable","name":"callData","nameLocation":"410:8:20","nodeType":"VariableDeclaration","scope":32347,"src":"404:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32345,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3Value","nameLocation":"309:10:20","scope":32486,"visibility":"public"},{"id":32352,"nodeType":"StructDefinition","src":"431:69:20","nodes":[],"canonicalName":"IMulticall3.Result","members":[{"constant":false,"id":32349,"mutability":"mutable","name":"success","nameLocation":"460:7:20","nodeType":"VariableDeclaration","scope":32352,"src":"455:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32348,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32351,"mutability":"mutable","name":"returnData","nameLocation":"483:10:20","nodeType":"VariableDeclaration","scope":32352,"src":"477:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32350,"name":"bytes","nodeType":"ElementaryTypeName","src":"477:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Result","nameLocation":"438:6:20","scope":32486,"visibility":"public"},{"id":32364,"nodeType":"FunctionDefinition","src":"506:140:20","nodes":[],"functionSelector":"252dba42","implemented":false,"kind":"function","modifiers":[],"name":"aggregate","nameLocation":"515:9:20","parameters":{"id":32357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32356,"mutability":"mutable","name":"calls","nameLocation":"541:5:20","nodeType":"VariableDeclaration","scope":32364,"src":"525:21:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32354,"nodeType":"UserDefinedTypeName","pathNode":{"id":32353,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":32331,"src":"525:4:20"},"referencedDeclaration":32331,"src":"525:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32331_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32355,"nodeType":"ArrayTypeName","src":"525:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"524:23:20"},"returnParameters":{"id":32363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32359,"mutability":"mutable","name":"blockNumber","nameLocation":"606:11:20","nodeType":"VariableDeclaration","scope":32364,"src":"598:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32358,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32362,"mutability":"mutable","name":"returnData","nameLocation":"634:10:20","nodeType":"VariableDeclaration","scope":32364,"src":"619:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":32360,"name":"bytes","nodeType":"ElementaryTypeName","src":"619:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":32361,"nodeType":"ArrayTypeName","src":"619:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"597:48:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32375,"nodeType":"FunctionDefinition","src":"652:98:20","nodes":[],"functionSelector":"82ad56cb","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3","nameLocation":"661:10:20","parameters":{"id":32369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32368,"mutability":"mutable","name":"calls","nameLocation":"689:5:20","nodeType":"VariableDeclaration","scope":32375,"src":"672:22:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32338_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3[]"},"typeName":{"baseType":{"id":32366,"nodeType":"UserDefinedTypeName","pathNode":{"id":32365,"name":"Call3","nodeType":"IdentifierPath","referencedDeclaration":32338,"src":"672:5:20"},"referencedDeclaration":32338,"src":"672:5:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call3_$32338_storage_ptr","typeString":"struct IMulticall3.Call3"}},"id":32367,"nodeType":"ArrayTypeName","src":"672:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32338_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3[]"}},"visibility":"internal"}],"src":"671:24:20"},"returnParameters":{"id":32374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32373,"mutability":"mutable","name":"returnData","nameLocation":"738:10:20","nodeType":"VariableDeclaration","scope":32375,"src":"722:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32371,"nodeType":"UserDefinedTypeName","pathNode":{"id":32370,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":32352,"src":"722:6:20"},"referencedDeclaration":32352,"src":"722:6:20","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32352_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32372,"nodeType":"ArrayTypeName","src":"722:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"721:28:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32386,"nodeType":"FunctionDefinition","src":"756:108:20","nodes":[],"functionSelector":"174dea71","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3Value","nameLocation":"765:15:20","parameters":{"id":32380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32379,"mutability":"mutable","name":"calls","nameLocation":"803:5:20","nodeType":"VariableDeclaration","scope":32386,"src":"781:27:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32347_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3Value[]"},"typeName":{"baseType":{"id":32377,"nodeType":"UserDefinedTypeName","pathNode":{"id":32376,"name":"Call3Value","nodeType":"IdentifierPath","referencedDeclaration":32347,"src":"781:10:20"},"referencedDeclaration":32347,"src":"781:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call3Value_$32347_storage_ptr","typeString":"struct IMulticall3.Call3Value"}},"id":32378,"nodeType":"ArrayTypeName","src":"781:12:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32347_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3Value[]"}},"visibility":"internal"}],"src":"780:29:20"},"returnParameters":{"id":32385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32384,"mutability":"mutable","name":"returnData","nameLocation":"852:10:20","nodeType":"VariableDeclaration","scope":32386,"src":"836:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32382,"nodeType":"UserDefinedTypeName","pathNode":{"id":32381,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":32352,"src":"836:6:20"},"referencedDeclaration":32352,"src":"836:6:20","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32352_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32383,"nodeType":"ArrayTypeName","src":"836:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"835:28:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32401,"nodeType":"FunctionDefinition","src":"870:168:20","nodes":[],"functionSelector":"c3077fa9","implemented":false,"kind":"function","modifiers":[],"name":"blockAndAggregate","nameLocation":"879:17:20","parameters":{"id":32391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32390,"mutability":"mutable","name":"calls","nameLocation":"913:5:20","nodeType":"VariableDeclaration","scope":32401,"src":"897:21:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32388,"nodeType":"UserDefinedTypeName","pathNode":{"id":32387,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":32331,"src":"897:4:20"},"referencedDeclaration":32331,"src":"897:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32331_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32389,"nodeType":"ArrayTypeName","src":"897:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"896:23:20"},"returnParameters":{"id":32400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32393,"mutability":"mutable","name":"blockNumber","nameLocation":"978:11:20","nodeType":"VariableDeclaration","scope":32401,"src":"970:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32392,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32395,"mutability":"mutable","name":"blockHash","nameLocation":"999:9:20","nodeType":"VariableDeclaration","scope":32401,"src":"991:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"991:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32399,"mutability":"mutable","name":"returnData","nameLocation":"1026:10:20","nodeType":"VariableDeclaration","scope":32401,"src":"1010:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32397,"nodeType":"UserDefinedTypeName","pathNode":{"id":32396,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":32352,"src":"1010:6:20"},"referencedDeclaration":32352,"src":"1010:6:20","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32352_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32398,"nodeType":"ArrayTypeName","src":"1010:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"969:68:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32406,"nodeType":"FunctionDefinition","src":"1044:62:20","nodes":[],"functionSelector":"3e64a696","implemented":false,"kind":"function","modifiers":[],"name":"getBasefee","nameLocation":"1053:10:20","parameters":{"id":32402,"nodeType":"ParameterList","parameters":[],"src":"1063:2:20"},"returnParameters":{"id":32405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32404,"mutability":"mutable","name":"basefee","nameLocation":"1097:7:20","nodeType":"VariableDeclaration","scope":32406,"src":"1089:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32403,"name":"uint256","nodeType":"ElementaryTypeName","src":"1089:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:17:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32413,"nodeType":"FunctionDefinition","src":"1112:85:20","nodes":[],"functionSelector":"ee82ac5e","implemented":false,"kind":"function","modifiers":[],"name":"getBlockHash","nameLocation":"1121:12:20","parameters":{"id":32409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32408,"mutability":"mutable","name":"blockNumber","nameLocation":"1142:11:20","nodeType":"VariableDeclaration","scope":32413,"src":"1134:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:21:20"},"returnParameters":{"id":32412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32411,"mutability":"mutable","name":"blockHash","nameLocation":"1186:9:20","nodeType":"VariableDeclaration","scope":32413,"src":"1178:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1178:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1177:19:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32418,"nodeType":"FunctionDefinition","src":"1203:70:20","nodes":[],"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1212:14:20","parameters":{"id":32414,"nodeType":"ParameterList","parameters":[],"src":"1226:2:20"},"returnParameters":{"id":32417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32416,"mutability":"mutable","name":"blockNumber","nameLocation":"1260:11:20","nodeType":"VariableDeclaration","scope":32418,"src":"1252:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1251:21:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32423,"nodeType":"FunctionDefinition","src":"1279:62:20","nodes":[],"functionSelector":"3408e470","implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"1288:10:20","parameters":{"id":32419,"nodeType":"ParameterList","parameters":[],"src":"1298:2:20"},"returnParameters":{"id":32422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32421,"mutability":"mutable","name":"chainid","nameLocation":"1332:7:20","nodeType":"VariableDeclaration","scope":32423,"src":"1324:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1324:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1323:17:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32428,"nodeType":"FunctionDefinition","src":"1347:76:20","nodes":[],"functionSelector":"a8b0574e","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockCoinbase","nameLocation":"1356:23:20","parameters":{"id":32424,"nodeType":"ParameterList","parameters":[],"src":"1379:2:20"},"returnParameters":{"id":32427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32426,"mutability":"mutable","name":"coinbase","nameLocation":"1413:8:20","nodeType":"VariableDeclaration","scope":32428,"src":"1405:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32425,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:18:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32433,"nodeType":"FunctionDefinition","src":"1429:80:20","nodes":[],"functionSelector":"72425d9d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockDifficulty","nameLocation":"1438:25:20","parameters":{"id":32429,"nodeType":"ParameterList","parameters":[],"src":"1463:2:20"},"returnParameters":{"id":32432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32431,"mutability":"mutable","name":"difficulty","nameLocation":"1497:10:20","nodeType":"VariableDeclaration","scope":32433,"src":"1489:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:20:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32438,"nodeType":"FunctionDefinition","src":"1515:76:20","nodes":[],"functionSelector":"86d516e8","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockGasLimit","nameLocation":"1524:23:20","parameters":{"id":32434,"nodeType":"ParameterList","parameters":[],"src":"1547:2:20"},"returnParameters":{"id":32437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32436,"mutability":"mutable","name":"gaslimit","nameLocation":"1581:8:20","nodeType":"VariableDeclaration","scope":32438,"src":"1573:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32435,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1572:18:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32443,"nodeType":"FunctionDefinition","src":"1597:78:20","nodes":[],"functionSelector":"0f28c97d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockTimestamp","nameLocation":"1606:24:20","parameters":{"id":32439,"nodeType":"ParameterList","parameters":[],"src":"1630:2:20"},"returnParameters":{"id":32442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32441,"mutability":"mutable","name":"timestamp","nameLocation":"1664:9:20","nodeType":"VariableDeclaration","scope":32443,"src":"1656:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32440,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1655:19:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32450,"nodeType":"FunctionDefinition","src":"1681:77:20","nodes":[],"functionSelector":"4d2301cc","implemented":false,"kind":"function","modifiers":[],"name":"getEthBalance","nameLocation":"1690:13:20","parameters":{"id":32446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32445,"mutability":"mutable","name":"addr","nameLocation":"1712:4:20","nodeType":"VariableDeclaration","scope":32450,"src":"1704:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32444,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1703:14:20"},"returnParameters":{"id":32449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32448,"mutability":"mutable","name":"balance","nameLocation":"1749:7:20","nodeType":"VariableDeclaration","scope":32450,"src":"1741:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1741:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1740:17:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32455,"nodeType":"FunctionDefinition","src":"1764:70:20","nodes":[],"functionSelector":"27e86d6e","implemented":false,"kind":"function","modifiers":[],"name":"getLastBlockHash","nameLocation":"1773:16:20","parameters":{"id":32451,"nodeType":"ParameterList","parameters":[],"src":"1789:2:20"},"returnParameters":{"id":32454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32453,"mutability":"mutable","name":"blockHash","nameLocation":"1823:9:20","nodeType":"VariableDeclaration","scope":32455,"src":"1815:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1815:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1814:19:20"},"scope":32486,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32468,"nodeType":"FunctionDefinition","src":"1840:144:20","nodes":[],"functionSelector":"bce38bd7","implemented":false,"kind":"function","modifiers":[],"name":"tryAggregate","nameLocation":"1849:12:20","parameters":{"id":32462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32457,"mutability":"mutable","name":"requireSuccess","nameLocation":"1867:14:20","nodeType":"VariableDeclaration","scope":32468,"src":"1862:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32456,"name":"bool","nodeType":"ElementaryTypeName","src":"1862:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32461,"mutability":"mutable","name":"calls","nameLocation":"1899:5:20","nodeType":"VariableDeclaration","scope":32468,"src":"1883:21:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32459,"nodeType":"UserDefinedTypeName","pathNode":{"id":32458,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":32331,"src":"1883:4:20"},"referencedDeclaration":32331,"src":"1883:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32331_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32460,"nodeType":"ArrayTypeName","src":"1883:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"1861:44:20"},"returnParameters":{"id":32467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32466,"mutability":"mutable","name":"returnData","nameLocation":"1972:10:20","nodeType":"VariableDeclaration","scope":32468,"src":"1956:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32464,"nodeType":"UserDefinedTypeName","pathNode":{"id":32463,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":32352,"src":"1956:6:20"},"referencedDeclaration":32352,"src":"1956:6:20","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32352_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32465,"nodeType":"ArrayTypeName","src":"1956:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"1955:28:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32485,"nodeType":"FunctionDefinition","src":"1990:192:20","nodes":[],"functionSelector":"399542e9","implemented":false,"kind":"function","modifiers":[],"name":"tryBlockAndAggregate","nameLocation":"1999:20:20","parameters":{"id":32475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32470,"mutability":"mutable","name":"requireSuccess","nameLocation":"2025:14:20","nodeType":"VariableDeclaration","scope":32485,"src":"2020:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32469,"name":"bool","nodeType":"ElementaryTypeName","src":"2020:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32474,"mutability":"mutable","name":"calls","nameLocation":"2057:5:20","nodeType":"VariableDeclaration","scope":32485,"src":"2041:21:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32472,"nodeType":"UserDefinedTypeName","pathNode":{"id":32471,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":32331,"src":"2041:4:20"},"referencedDeclaration":32331,"src":"2041:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32331_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32473,"nodeType":"ArrayTypeName","src":"2041:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32331_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"2019:44:20"},"returnParameters":{"id":32484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32477,"mutability":"mutable","name":"blockNumber","nameLocation":"2122:11:20","nodeType":"VariableDeclaration","scope":32485,"src":"2114:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32476,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32479,"mutability":"mutable","name":"blockHash","nameLocation":"2143:9:20","nodeType":"VariableDeclaration","scope":32485,"src":"2135:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2135:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32483,"mutability":"mutable","name":"returnData","nameLocation":"2170:10:20","nodeType":"VariableDeclaration","scope":32485,"src":"2154:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32481,"nodeType":"UserDefinedTypeName","pathNode":{"id":32480,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":32352,"src":"2154:6:20"},"referencedDeclaration":32352,"src":"2154:6:20","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32352_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32482,"nodeType":"ArrayTypeName","src":"2154:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32352_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"2113:68:20"},"scope":32486,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IMulticall3","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[32486],"name":"IMulticall3","nameLocation":"110:11:20","scope":32487,"usedErrors":[]}],"license":"MIT"},"id":20}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":18}
{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","id":32462,"exportedSymbols":{"IMulticall3":[32461]},"nodeType":"SourceUnit","src":"32:2153:19","nodes":[{"id":32300,"nodeType":"PragmaDirective","src":"32:31:19","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32301,"nodeType":"PragmaDirective","src":"65:33:19","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":32461,"nodeType":"ContractDefinition","src":"100:2084:19","nodes":[{"id":32306,"nodeType":"StructDefinition","src":"128:67:19","nodes":[],"canonicalName":"IMulticall3.Call","members":[{"constant":false,"id":32303,"mutability":"mutable","name":"target","nameLocation":"158:6:19","nodeType":"VariableDeclaration","scope":32306,"src":"150:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32302,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32305,"mutability":"mutable","name":"callData","nameLocation":"180:8:19","nodeType":"VariableDeclaration","scope":32306,"src":"174:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32304,"name":"bytes","nodeType":"ElementaryTypeName","src":"174:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call","nameLocation":"135:4:19","scope":32461,"visibility":"public"},{"id":32313,"nodeType":"StructDefinition","src":"201:95:19","nodes":[],"canonicalName":"IMulticall3.Call3","members":[{"constant":false,"id":32308,"mutability":"mutable","name":"target","nameLocation":"232:6:19","nodeType":"VariableDeclaration","scope":32313,"src":"224:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32307,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32310,"mutability":"mutable","name":"allowFailure","nameLocation":"253:12:19","nodeType":"VariableDeclaration","scope":32313,"src":"248:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32309,"name":"bool","nodeType":"ElementaryTypeName","src":"248:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32312,"mutability":"mutable","name":"callData","nameLocation":"281:8:19","nodeType":"VariableDeclaration","scope":32313,"src":"275:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32311,"name":"bytes","nodeType":"ElementaryTypeName","src":"275:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3","nameLocation":"208:5:19","scope":32461,"visibility":"public"},{"id":32322,"nodeType":"StructDefinition","src":"302:123:19","nodes":[],"canonicalName":"IMulticall3.Call3Value","members":[{"constant":false,"id":32315,"mutability":"mutable","name":"target","nameLocation":"338:6:19","nodeType":"VariableDeclaration","scope":32322,"src":"330:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32314,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32317,"mutability":"mutable","name":"allowFailure","nameLocation":"359:12:19","nodeType":"VariableDeclaration","scope":32322,"src":"354:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32316,"name":"bool","nodeType":"ElementaryTypeName","src":"354:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32319,"mutability":"mutable","name":"value","nameLocation":"389:5:19","nodeType":"VariableDeclaration","scope":32322,"src":"381:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32318,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32321,"mutability":"mutable","name":"callData","nameLocation":"410:8:19","nodeType":"VariableDeclaration","scope":32322,"src":"404:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32320,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3Value","nameLocation":"309:10:19","scope":32461,"visibility":"public"},{"id":32327,"nodeType":"StructDefinition","src":"431:69:19","nodes":[],"canonicalName":"IMulticall3.Result","members":[{"constant":false,"id":32324,"mutability":"mutable","name":"success","nameLocation":"460:7:19","nodeType":"VariableDeclaration","scope":32327,"src":"455:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32323,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32326,"mutability":"mutable","name":"returnData","nameLocation":"483:10:19","nodeType":"VariableDeclaration","scope":32327,"src":"477:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32325,"name":"bytes","nodeType":"ElementaryTypeName","src":"477:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Result","nameLocation":"438:6:19","scope":32461,"visibility":"public"},{"id":32339,"nodeType":"FunctionDefinition","src":"506:140:19","nodes":[],"functionSelector":"252dba42","implemented":false,"kind":"function","modifiers":[],"name":"aggregate","nameLocation":"515:9:19","parameters":{"id":32332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32331,"mutability":"mutable","name":"calls","nameLocation":"541:5:19","nodeType":"VariableDeclaration","scope":32339,"src":"525:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32329,"nodeType":"UserDefinedTypeName","pathNode":{"id":32328,"name":"Call","nameLocations":["525:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"525:4:19"},"referencedDeclaration":32306,"src":"525:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32330,"nodeType":"ArrayTypeName","src":"525:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"524:23:19"},"returnParameters":{"id":32338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32334,"mutability":"mutable","name":"blockNumber","nameLocation":"606:11:19","nodeType":"VariableDeclaration","scope":32339,"src":"598:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32333,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32337,"mutability":"mutable","name":"returnData","nameLocation":"634:10:19","nodeType":"VariableDeclaration","scope":32339,"src":"619:25:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":32335,"name":"bytes","nodeType":"ElementaryTypeName","src":"619:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":32336,"nodeType":"ArrayTypeName","src":"619:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"597:48:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32350,"nodeType":"FunctionDefinition","src":"652:98:19","nodes":[],"functionSelector":"82ad56cb","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3","nameLocation":"661:10:19","parameters":{"id":32344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32343,"mutability":"mutable","name":"calls","nameLocation":"689:5:19","nodeType":"VariableDeclaration","scope":32350,"src":"672:22:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32313_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3[]"},"typeName":{"baseType":{"id":32341,"nodeType":"UserDefinedTypeName","pathNode":{"id":32340,"name":"Call3","nameLocations":["672:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":32313,"src":"672:5:19"},"referencedDeclaration":32313,"src":"672:5:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call3_$32313_storage_ptr","typeString":"struct IMulticall3.Call3"}},"id":32342,"nodeType":"ArrayTypeName","src":"672:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32313_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3[]"}},"visibility":"internal"}],"src":"671:24:19"},"returnParameters":{"id":32349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32348,"mutability":"mutable","name":"returnData","nameLocation":"738:10:19","nodeType":"VariableDeclaration","scope":32350,"src":"722:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32346,"nodeType":"UserDefinedTypeName","pathNode":{"id":32345,"name":"Result","nameLocations":["722:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32327,"src":"722:6:19"},"referencedDeclaration":32327,"src":"722:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32327_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32347,"nodeType":"ArrayTypeName","src":"722:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"721:28:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32361,"nodeType":"FunctionDefinition","src":"756:108:19","nodes":[],"functionSelector":"174dea71","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3Value","nameLocation":"765:15:19","parameters":{"id":32355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32354,"mutability":"mutable","name":"calls","nameLocation":"803:5:19","nodeType":"VariableDeclaration","scope":32361,"src":"781:27:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32322_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3Value[]"},"typeName":{"baseType":{"id":32352,"nodeType":"UserDefinedTypeName","pathNode":{"id":32351,"name":"Call3Value","nameLocations":["781:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":32322,"src":"781:10:19"},"referencedDeclaration":32322,"src":"781:10:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call3Value_$32322_storage_ptr","typeString":"struct IMulticall3.Call3Value"}},"id":32353,"nodeType":"ArrayTypeName","src":"781:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32322_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3Value[]"}},"visibility":"internal"}],"src":"780:29:19"},"returnParameters":{"id":32360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32359,"mutability":"mutable","name":"returnData","nameLocation":"852:10:19","nodeType":"VariableDeclaration","scope":32361,"src":"836:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32357,"nodeType":"UserDefinedTypeName","pathNode":{"id":32356,"name":"Result","nameLocations":["836:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32327,"src":"836:6:19"},"referencedDeclaration":32327,"src":"836:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32327_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32358,"nodeType":"ArrayTypeName","src":"836:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"835:28:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32376,"nodeType":"FunctionDefinition","src":"870:168:19","nodes":[],"functionSelector":"c3077fa9","implemented":false,"kind":"function","modifiers":[],"name":"blockAndAggregate","nameLocation":"879:17:19","parameters":{"id":32366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32365,"mutability":"mutable","name":"calls","nameLocation":"913:5:19","nodeType":"VariableDeclaration","scope":32376,"src":"897:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32363,"nodeType":"UserDefinedTypeName","pathNode":{"id":32362,"name":"Call","nameLocations":["897:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"897:4:19"},"referencedDeclaration":32306,"src":"897:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32364,"nodeType":"ArrayTypeName","src":"897:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"896:23:19"},"returnParameters":{"id":32375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32368,"mutability":"mutable","name":"blockNumber","nameLocation":"978:11:19","nodeType":"VariableDeclaration","scope":32376,"src":"970:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32367,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32370,"mutability":"mutable","name":"blockHash","nameLocation":"999:9:19","nodeType":"VariableDeclaration","scope":32376,"src":"991:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"991:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32374,"mutability":"mutable","name":"returnData","nameLocation":"1026:10:19","nodeType":"VariableDeclaration","scope":32376,"src":"1010:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32372,"nodeType":"UserDefinedTypeName","pathNode":{"id":32371,"name":"Result","nameLocations":["1010:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32327,"src":"1010:6:19"},"referencedDeclaration":32327,"src":"1010:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32327_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32373,"nodeType":"ArrayTypeName","src":"1010:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"969:68:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32381,"nodeType":"FunctionDefinition","src":"1044:62:19","nodes":[],"functionSelector":"3e64a696","implemented":false,"kind":"function","modifiers":[],"name":"getBasefee","nameLocation":"1053:10:19","parameters":{"id":32377,"nodeType":"ParameterList","parameters":[],"src":"1063:2:19"},"returnParameters":{"id":32380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32379,"mutability":"mutable","name":"basefee","nameLocation":"1097:7:19","nodeType":"VariableDeclaration","scope":32381,"src":"1089:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32378,"name":"uint256","nodeType":"ElementaryTypeName","src":"1089:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:17:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32388,"nodeType":"FunctionDefinition","src":"1112:85:19","nodes":[],"functionSelector":"ee82ac5e","implemented":false,"kind":"function","modifiers":[],"name":"getBlockHash","nameLocation":"1121:12:19","parameters":{"id":32384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32383,"mutability":"mutable","name":"blockNumber","nameLocation":"1142:11:19","nodeType":"VariableDeclaration","scope":32388,"src":"1134:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:21:19"},"returnParameters":{"id":32387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32386,"mutability":"mutable","name":"blockHash","nameLocation":"1186:9:19","nodeType":"VariableDeclaration","scope":32388,"src":"1178:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1178:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1177:19:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32393,"nodeType":"FunctionDefinition","src":"1203:70:19","nodes":[],"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1212:14:19","parameters":{"id":32389,"nodeType":"ParameterList","parameters":[],"src":"1226:2:19"},"returnParameters":{"id":32392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32391,"mutability":"mutable","name":"blockNumber","nameLocation":"1260:11:19","nodeType":"VariableDeclaration","scope":32393,"src":"1252:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32390,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1251:21:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32398,"nodeType":"FunctionDefinition","src":"1279:62:19","nodes":[],"functionSelector":"3408e470","implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"1288:10:19","parameters":{"id":32394,"nodeType":"ParameterList","parameters":[],"src":"1298:2:19"},"returnParameters":{"id":32397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32396,"mutability":"mutable","name":"chainid","nameLocation":"1332:7:19","nodeType":"VariableDeclaration","scope":32398,"src":"1324:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32395,"name":"uint256","nodeType":"ElementaryTypeName","src":"1324:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1323:17:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32403,"nodeType":"FunctionDefinition","src":"1347:76:19","nodes":[],"functionSelector":"a8b0574e","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockCoinbase","nameLocation":"1356:23:19","parameters":{"id":32399,"nodeType":"ParameterList","parameters":[],"src":"1379:2:19"},"returnParameters":{"id":32402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32401,"mutability":"mutable","name":"coinbase","nameLocation":"1413:8:19","nodeType":"VariableDeclaration","scope":32403,"src":"1405:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32400,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:18:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32408,"nodeType":"FunctionDefinition","src":"1429:80:19","nodes":[],"functionSelector":"72425d9d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockDifficulty","nameLocation":"1438:25:19","parameters":{"id":32404,"nodeType":"ParameterList","parameters":[],"src":"1463:2:19"},"returnParameters":{"id":32407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32406,"mutability":"mutable","name":"difficulty","nameLocation":"1497:10:19","nodeType":"VariableDeclaration","scope":32408,"src":"1489:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32405,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:20:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32413,"nodeType":"FunctionDefinition","src":"1515:76:19","nodes":[],"functionSelector":"86d516e8","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockGasLimit","nameLocation":"1524:23:19","parameters":{"id":32409,"nodeType":"ParameterList","parameters":[],"src":"1547:2:19"},"returnParameters":{"id":32412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32411,"mutability":"mutable","name":"gaslimit","nameLocation":"1581:8:19","nodeType":"VariableDeclaration","scope":32413,"src":"1573:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32410,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1572:18:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32418,"nodeType":"FunctionDefinition","src":"1597:78:19","nodes":[],"functionSelector":"0f28c97d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockTimestamp","nameLocation":"1606:24:19","parameters":{"id":32414,"nodeType":"ParameterList","parameters":[],"src":"1630:2:19"},"returnParameters":{"id":32417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32416,"mutability":"mutable","name":"timestamp","nameLocation":"1664:9:19","nodeType":"VariableDeclaration","scope":32418,"src":"1656:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1655:19:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32425,"nodeType":"FunctionDefinition","src":"1681:77:19","nodes":[],"functionSelector":"4d2301cc","implemented":false,"kind":"function","modifiers":[],"name":"getEthBalance","nameLocation":"1690:13:19","parameters":{"id":32421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32420,"mutability":"mutable","name":"addr","nameLocation":"1712:4:19","nodeType":"VariableDeclaration","scope":32425,"src":"1704:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32419,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1703:14:19"},"returnParameters":{"id":32424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32423,"mutability":"mutable","name":"balance","nameLocation":"1749:7:19","nodeType":"VariableDeclaration","scope":32425,"src":"1741:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32422,"name":"uint256","nodeType":"ElementaryTypeName","src":"1741:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1740:17:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32430,"nodeType":"FunctionDefinition","src":"1764:70:19","nodes":[],"functionSelector":"27e86d6e","implemented":false,"kind":"function","modifiers":[],"name":"getLastBlockHash","nameLocation":"1773:16:19","parameters":{"id":32426,"nodeType":"ParameterList","parameters":[],"src":"1789:2:19"},"returnParameters":{"id":32429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32428,"mutability":"mutable","name":"blockHash","nameLocation":"1823:9:19","nodeType":"VariableDeclaration","scope":32430,"src":"1815:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1815:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1814:19:19"},"scope":32461,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32443,"nodeType":"FunctionDefinition","src":"1840:144:19","nodes":[],"functionSelector":"bce38bd7","implemented":false,"kind":"function","modifiers":[],"name":"tryAggregate","nameLocation":"1849:12:19","parameters":{"id":32437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32432,"mutability":"mutable","name":"requireSuccess","nameLocation":"1867:14:19","nodeType":"VariableDeclaration","scope":32443,"src":"1862:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32431,"name":"bool","nodeType":"ElementaryTypeName","src":"1862:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32436,"mutability":"mutable","name":"calls","nameLocation":"1899:5:19","nodeType":"VariableDeclaration","scope":32443,"src":"1883:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32434,"nodeType":"UserDefinedTypeName","pathNode":{"id":32433,"name":"Call","nameLocations":["1883:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"1883:4:19"},"referencedDeclaration":32306,"src":"1883:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32435,"nodeType":"ArrayTypeName","src":"1883:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"1861:44:19"},"returnParameters":{"id":32442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32441,"mutability":"mutable","name":"returnData","nameLocation":"1972:10:19","nodeType":"VariableDeclaration","scope":32443,"src":"1956:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32439,"nodeType":"UserDefinedTypeName","pathNode":{"id":32438,"name":"Result","nameLocations":["1956:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32327,"src":"1956:6:19"},"referencedDeclaration":32327,"src":"1956:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32327_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32440,"nodeType":"ArrayTypeName","src":"1956:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"1955:28:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32460,"nodeType":"FunctionDefinition","src":"1990:192:19","nodes":[],"functionSelector":"399542e9","implemented":false,"kind":"function","modifiers":[],"name":"tryBlockAndAggregate","nameLocation":"1999:20:19","parameters":{"id":32450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32445,"mutability":"mutable","name":"requireSuccess","nameLocation":"2025:14:19","nodeType":"VariableDeclaration","scope":32460,"src":"2020:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32444,"name":"bool","nodeType":"ElementaryTypeName","src":"2020:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32449,"mutability":"mutable","name":"calls","nameLocation":"2057:5:19","nodeType":"VariableDeclaration","scope":32460,"src":"2041:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32447,"nodeType":"UserDefinedTypeName","pathNode":{"id":32446,"name":"Call","nameLocations":["2041:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"2041:4:19"},"referencedDeclaration":32306,"src":"2041:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32448,"nodeType":"ArrayTypeName","src":"2041:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"2019:44:19"},"returnParameters":{"id":32459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32452,"mutability":"mutable","name":"blockNumber","nameLocation":"2122:11:19","nodeType":"VariableDeclaration","scope":32460,"src":"2114:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32451,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32454,"mutability":"mutable","name":"blockHash","nameLocation":"2143:9:19","nodeType":"VariableDeclaration","scope":32460,"src":"2135:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2135:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32458,"mutability":"mutable","name":"returnData","nameLocation":"2170:10:19","nodeType":"VariableDeclaration","scope":32460,"src":"2154:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32456,"nodeType":"UserDefinedTypeName","pathNode":{"id":32455,"name":"Result","nameLocations":["2154:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32327,"src":"2154:6:19"},"referencedDeclaration":32327,"src":"2154:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32327_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32457,"nodeType":"ArrayTypeName","src":"2154:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32327_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"2113:68:19"},"scope":32461,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IMulticall3","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[32461],"name":"IMulticall3","nameLocation":"110:11:19","scope":32462,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":19}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"loadBlobPreimagePart","inputs":[{"name":"_z","type":"uint256","internalType":"uint256"},{"name":"_y","type":"uint256","internalType":"uint256"},{"name":"_commitment","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadKeccak256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"},{"name":"_word","type":"bytes32","internalType":"bytes32"},{"name":"_size","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"key_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"loadPrecompilePreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_precompile","type":"address","internalType":"address"},{"name":"_input","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadSha256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"readPreimage","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_offset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dat_","type":"bytes32","internalType":"bytes32"},{"name":"datLen_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":"9d7e8769","loadKeccak256PreimagePart(uint256,bytes)":"e1592611","loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":"52f0f3ad","loadPrecompilePreimagePart(uint256,address,bytes)":"04697c78","loadSha256PreimagePart(uint256,bytes)":"8dc4be11","readPreimage(bytes32,uint256)":"e03110e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_z\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_y\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_commitment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadBlobPreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadKeccak256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_word\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadLocalData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"key_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_precompile\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"loadPrecompilePreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadSha256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_offset\",\"type\":\"uint256\"}],\"name\":\"readPreimage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dat_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"datLen_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)\":{\"params\":{\"_commitment\":\"The commitment to the polynomial. 48 bytes, part of the preimage key.\",\"_partOffset\":\"The offset of the preimage to store.\",\"_proof\":\"The KZG proof, part of the preimage key.\",\"_y\":\"Big endian point value. The preimage for the key.\",\"_z\":\"Big endian point value. Part of the preimage key.\"}},\"loadKeccak256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"details\":\"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: \\u250c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u252c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510 \\u2502 Identifier \\u2502 Data \\u2502 \\u251c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u253c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2524 \\u2502 1 \\u2502 L1 Head Hash (bytes32) \\u2502 \\u2502 2 \\u2502 Output Root (bytes32) \\u2502 \\u2502 3 \\u2502 Root Claim (bytes32) \\u2502 \\u2502 4 \\u2502 L2 Block Number (u64) \\u2502 \\u2502 5 \\u2502 Chain ID (u64) \\u2502 \\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2534\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\",\"params\":{\"_ident\":\"The identifier of the local data.\",\"_localContext\":\"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.\",\"_partOffset\":\"The offset of the local data part to write to the oracle.\",\"_size\":\"The number of bytes in `_word` to load.\",\"_word\":\"The local data word.\"}},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"params\":{\"_input\":\"The input to the precompile call.\",\"_partOffset\":\"The offset of the precompile result being loaded.\",\"_precompile\":\"The precompile address\"}},\"loadSha256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"readPreimage(bytes32,uint256)\":{\"params\":{\"_key\":\"The key of the preimage to read.\",\"_offset\":\"The offset of the preimage to read.\"},\"returns\":{\"datLen_\":\"The length of the preimage data.\",\"dat_\":\"The preimage data.\"}}},\"title\":\"IPreimageOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"loadKeccak256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"notice\":\"Loads of local data part into the preimage oracle.\"},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"notice\":\"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`.\"},\"loadSha256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"readPreimage(bytes32,uint256)\":{\"notice\":\"Reads a preimage from the oracle.\"}},\"notice\":\"Interface for a preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/interfaces/IPreimageOracle.sol\":\"IPreimageOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_z","type":"uint256"},{"internalType":"uint256","name":"_y","type":"uint256"},{"internalType":"bytes","name":"_commitment","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadBlobPreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadKeccak256PreimagePart"},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"},{"internalType":"bytes32","name":"_word","type":"bytes32"},{"internalType":"uint256","name":"_size","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadLocalData","outputs":[{"internalType":"bytes32","name":"key_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"address","name":"_precompile","type":"address"},{"internalType":"bytes","name":"_input","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadPrecompilePreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadSha256PreimagePart"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_offset","type":"uint256"}],"stateMutability":"view","type":"function","name":"readPreimage","outputs":[{"internalType":"bytes32","name":"dat_","type":"bytes32"},{"internalType":"uint256","name":"datLen_","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"version":1},"userdoc":{"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/interfaces/IPreimageOracle.sol":"IPreimageOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"notice":"Interface for a preimage oracle."},"devdoc":{"version":1,"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"title":"IPreimageOracle"},"id":154}
{"abi":[{"type":"function","name":"loadBlobPreimagePart","inputs":[{"name":"_z","type":"uint256","internalType":"uint256"},{"name":"_y","type":"uint256","internalType":"uint256"},{"name":"_commitment","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadKeccak256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"},{"name":"_word","type":"bytes32","internalType":"bytes32"},{"name":"_size","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"key_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"loadPrecompilePreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_precompile","type":"address","internalType":"address"},{"name":"_input","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadSha256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"readPreimage","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_offset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dat_","type":"bytes32","internalType":"bytes32"},{"name":"datLen_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":"9d7e8769","loadKeccak256PreimagePart(uint256,bytes)":"e1592611","loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":"52f0f3ad","loadPrecompilePreimagePart(uint256,address,bytes)":"04697c78","loadSha256PreimagePart(uint256,bytes)":"8dc4be11","readPreimage(bytes32,uint256)":"e03110e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_z\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_y\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_commitment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadBlobPreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadKeccak256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_word\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadLocalData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"key_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_precompile\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"loadPrecompilePreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadSha256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_offset\",\"type\":\"uint256\"}],\"name\":\"readPreimage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dat_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"datLen_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)\":{\"params\":{\"_commitment\":\"The commitment to the polynomial. 48 bytes, part of the preimage key.\",\"_partOffset\":\"The offset of the preimage to store.\",\"_proof\":\"The KZG proof, part of the preimage key.\",\"_y\":\"Big endian point value. The preimage for the key.\",\"_z\":\"Big endian point value. Part of the preimage key.\"}},\"loadKeccak256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"details\":\"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: \\u250c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u252c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510 \\u2502 Identifier \\u2502 Data \\u2502 \\u251c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u253c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2524 \\u2502 1 \\u2502 L1 Head Hash (bytes32) \\u2502 \\u2502 2 \\u2502 Output Root (bytes32) \\u2502 \\u2502 3 \\u2502 Root Claim (bytes32) \\u2502 \\u2502 4 \\u2502 L2 Block Number (u64) \\u2502 \\u2502 5 \\u2502 Chain ID (u64) \\u2502 \\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2534\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\",\"params\":{\"_ident\":\"The identifier of the local data.\",\"_localContext\":\"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.\",\"_partOffset\":\"The offset of the local data part to write to the oracle.\",\"_size\":\"The number of bytes in `_word` to load.\",\"_word\":\"The local data word.\"}},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"params\":{\"_input\":\"The input to the precompile call.\",\"_partOffset\":\"The offset of the precompile result being loaded.\",\"_precompile\":\"The precompile address\"}},\"loadSha256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"readPreimage(bytes32,uint256)\":{\"params\":{\"_key\":\"The key of the preimage to read.\",\"_offset\":\"The offset of the preimage to read.\"},\"returns\":{\"datLen_\":\"The length of the preimage data.\",\"dat_\":\"The preimage data.\"}}},\"title\":\"IPreimageOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"loadKeccak256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"notice\":\"Loads of local data part into the preimage oracle.\"},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"notice\":\"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`.\"},\"loadSha256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"readPreimage(bytes32,uint256)\":{\"notice\":\"Reads a preimage from the oracle.\"}},\"notice\":\"Interface for a preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/interfaces/IPreimageOracle.sol\":\"IPreimageOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_z","type":"uint256"},{"internalType":"uint256","name":"_y","type":"uint256"},{"internalType":"bytes","name":"_commitment","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadBlobPreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadKeccak256PreimagePart"},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"},{"internalType":"bytes32","name":"_word","type":"bytes32"},{"internalType":"uint256","name":"_size","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadLocalData","outputs":[{"internalType":"bytes32","name":"key_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"address","name":"_precompile","type":"address"},{"internalType":"bytes","name":"_input","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadPrecompilePreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadSha256PreimagePart"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_offset","type":"uint256"}],"stateMutability":"view","type":"function","name":"readPreimage","outputs":[{"internalType":"bytes32","name":"dat_","type":"bytes32"},{"internalType":"uint256","name":"datLen_","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"version":1},"userdoc":{"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/interfaces/IPreimageOracle.sol":"IPreimageOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"notice":"Interface for a preimage oracle."},"devdoc":{"version":1,"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"title":"IPreimageOracle"},"ast":{"absolutePath":"src/cannon/interfaces/IPreimageOracle.sol","id":99341,"exportedSymbols":{"IPreimageOracle":[99340]},"nodeType":"SourceUnit","src":"32:4354:166","nodes":[{"id":99270,"nodeType":"PragmaDirective","src":"32:23:166","nodes":[],"literals":["solidity","0.8",".15"]},{"id":99340,"nodeType":"ContractDefinition","src":"129:4256:166","nodes":[{"id":99283,"nodeType":"FunctionDefinition","src":"420:107:166","nodes":[],"documentation":{"id":99272,"nodeType":"StructuredDocumentation","src":"161:254:166","text":"@notice Reads a preimage from the oracle.\n @param _key The key of the preimage to read.\n @param _offset The offset of the preimage to read.\n @return dat_ The preimage data.\n @return datLen_ The length of the preimage data."},"functionSelector":"e03110e1","implemented":false,"kind":"function","modifiers":[],"name":"readPreimage","nameLocation":"429:12:166","parameters":{"id":99277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99274,"mutability":"mutable","name":"_key","nameLocation":"450:4:166","nodeType":"VariableDeclaration","scope":99283,"src":"442:12:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:166","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":99276,"mutability":"mutable","name":"_offset","nameLocation":"464:7:166","nodeType":"VariableDeclaration","scope":99283,"src":"456:15:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99275,"name":"uint256","nodeType":"ElementaryTypeName","src":"456:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"441:31:166"},"returnParameters":{"id":99282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99279,"mutability":"mutable","name":"dat_","nameLocation":"504:4:166","nodeType":"VariableDeclaration","scope":99283,"src":"496:12:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"496:7:166","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":99281,"mutability":"mutable","name":"datLen_","nameLocation":"518:7:166","nodeType":"VariableDeclaration","scope":99283,"src":"510:15:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99280,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"495:31:166"},"scope":99340,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99299,"nodeType":"FunctionDefinition","src":"2037:207:166","nodes":[],"documentation":{"id":99284,"nodeType":"StructuredDocumentation","src":"533:1499:166","text":"@notice Loads of local data part into the preimage oracle.\n @param _ident The identifier of the local data.\n @param _localContext The local key context for the preimage oracle. Optionally, can be set as a constant\n if the caller only requires one set of local keys.\n @param _word The local data word.\n @param _size The number of bytes in `_word` to load.\n @param _partOffset The offset of the local data part to write to the oracle.\n @dev The local data parts are loaded into the preimage oracle under the context\n of the caller - no other account can write to the caller's context\n specific data.\n There are 5 local data identifiers:\n ┌────────────┬────────────────────────┐\n │ Identifier │ Data │\n ├────────────┼────────────────────────┤\n │ 1 │ L1 Head Hash (bytes32) │\n │ 2 │ Output Root (bytes32) │\n │ 3 │ Root Claim (bytes32) │\n │ 4 │ L2 Block Number (u64) │\n │ 5 │ Chain ID (u64) │\n └────────────┴────────────────────────┘"},"functionSelector":"52f0f3ad","implemented":false,"kind":"function","modifiers":[],"name":"loadLocalData","nameLocation":"2046:13:166","parameters":{"id":99295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99286,"mutability":"mutable","name":"_ident","nameLocation":"2077:6:166","nodeType":"VariableDeclaration","scope":99299,"src":"2069:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2069:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99288,"mutability":"mutable","name":"_localContext","nameLocation":"2101:13:166","nodeType":"VariableDeclaration","scope":99299,"src":"2093:21:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2093:7:166","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":99290,"mutability":"mutable","name":"_word","nameLocation":"2132:5:166","nodeType":"VariableDeclaration","scope":99299,"src":"2124:13:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2124:7:166","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":99292,"mutability":"mutable","name":"_size","nameLocation":"2155:5:166","nodeType":"VariableDeclaration","scope":99299,"src":"2147:13:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99291,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99294,"mutability":"mutable","name":"_partOffset","nameLocation":"2178:11:166","nodeType":"VariableDeclaration","scope":99299,"src":"2170:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2170:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2059:136:166"},"returnParameters":{"id":99298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99297,"mutability":"mutable","name":"key_","nameLocation":"2238:4:166","nodeType":"VariableDeclaration","scope":99299,"src":"2230:12:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:166","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2229:14:166"},"scope":99340,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99307,"nodeType":"FunctionDefinition","src":"2532:91:166","nodes":[],"documentation":{"id":99300,"nodeType":"StructuredDocumentation","src":"2250:277:166","text":"@notice Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes\n (clipped at preimage length, if out of data).\n @param _partOffset The offset of the preimage to read.\n @param _preimage The preimage data."},"functionSelector":"e1592611","implemented":false,"kind":"function","modifiers":[],"name":"loadKeccak256PreimagePart","nameLocation":"2541:25:166","parameters":{"id":99305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99302,"mutability":"mutable","name":"_partOffset","nameLocation":"2575:11:166","nodeType":"VariableDeclaration","scope":99307,"src":"2567:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99301,"name":"uint256","nodeType":"ElementaryTypeName","src":"2567:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99304,"mutability":"mutable","name":"_preimage","nameLocation":"2603:9:166","nodeType":"VariableDeclaration","scope":99307,"src":"2588:24:166","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":99303,"name":"bytes","nodeType":"ElementaryTypeName","src":"2588:5:166","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2566:47:166"},"returnParameters":{"id":99306,"nodeType":"ParameterList","parameters":[],"src":"2622:0:166"},"scope":99340,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99315,"nodeType":"FunctionDefinition","src":"2908:88:166","nodes":[],"documentation":{"id":99308,"nodeType":"StructuredDocumentation","src":"2629:274:166","text":"@notice Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes\n (clipped at preimage length, if out of data).\n @param _partOffset The offset of the preimage to read.\n @param _preimage The preimage data."},"functionSelector":"8dc4be11","implemented":false,"kind":"function","modifiers":[],"name":"loadSha256PreimagePart","nameLocation":"2917:22:166","parameters":{"id":99313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99310,"mutability":"mutable","name":"_partOffset","nameLocation":"2948:11:166","nodeType":"VariableDeclaration","scope":99315,"src":"2940:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99312,"mutability":"mutable","name":"_preimage","nameLocation":"2976:9:166","nodeType":"VariableDeclaration","scope":99315,"src":"2961:24:166","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":99311,"name":"bytes","nodeType":"ElementaryTypeName","src":"2961:5:166","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2939:47:166"},"returnParameters":{"id":99314,"nodeType":"ParameterList","parameters":[],"src":"2995:0:166"},"scope":99340,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99329,"nodeType":"FunctionDefinition","src":"3596:189:166","nodes":[],"documentation":{"id":99316,"nodeType":"StructuredDocumentation","src":"3236:355:166","text":"@param _z Big endian point value. Part of the preimage key.\n @param _y Big endian point value. The preimage for the key.\n @param _commitment The commitment to the polynomial. 48 bytes, part of the preimage key.\n @param _proof The KZG proof, part of the preimage key.\n @param _partOffset The offset of the preimage to store."},"functionSelector":"9d7e8769","implemented":false,"kind":"function","modifiers":[],"name":"loadBlobPreimagePart","nameLocation":"3605:20:166","parameters":{"id":99327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99318,"mutability":"mutable","name":"_z","nameLocation":"3643:2:166","nodeType":"VariableDeclaration","scope":99329,"src":"3635:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99317,"name":"uint256","nodeType":"ElementaryTypeName","src":"3635:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99320,"mutability":"mutable","name":"_y","nameLocation":"3663:2:166","nodeType":"VariableDeclaration","scope":99329,"src":"3655:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99319,"name":"uint256","nodeType":"ElementaryTypeName","src":"3655:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99322,"mutability":"mutable","name":"_commitment","nameLocation":"3690:11:166","nodeType":"VariableDeclaration","scope":99329,"src":"3675:26:166","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":99321,"name":"bytes","nodeType":"ElementaryTypeName","src":"3675:5:166","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":99324,"mutability":"mutable","name":"_proof","nameLocation":"3726:6:166","nodeType":"VariableDeclaration","scope":99329,"src":"3711:21:166","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":99323,"name":"bytes","nodeType":"ElementaryTypeName","src":"3711:5:166","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":99326,"mutability":"mutable","name":"_partOffset","nameLocation":"3750:11:166","nodeType":"VariableDeclaration","scope":99329,"src":"3742:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99325,"name":"uint256","nodeType":"ElementaryTypeName","src":"3742:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3625:142:166"},"returnParameters":{"id":99328,"nodeType":"ParameterList","parameters":[],"src":"3784:0:166"},"scope":99340,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99339,"nodeType":"FunctionDefinition","src":"4273:110:166","nodes":[],"documentation":{"id":99330,"nodeType":"StructuredDocumentation","src":"3791:477:166","text":"@notice Prepares a precompile result to be read by a precompile key for the specified offset.\n The precompile result data is a concatenation of the precompile call status byte and its return data.\n The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`.\n @param _partOffset The offset of the precompile result being loaded.\n @param _precompile The precompile address\n @param _input The input to the precompile call."},"functionSelector":"04697c78","implemented":false,"kind":"function","modifiers":[],"name":"loadPrecompilePreimagePart","nameLocation":"4282:26:166","parameters":{"id":99337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99332,"mutability":"mutable","name":"_partOffset","nameLocation":"4317:11:166","nodeType":"VariableDeclaration","scope":99339,"src":"4309:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99331,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99334,"mutability":"mutable","name":"_precompile","nameLocation":"4338:11:166","nodeType":"VariableDeclaration","scope":99339,"src":"4330:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99333,"name":"address","nodeType":"ElementaryTypeName","src":"4330:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99336,"mutability":"mutable","name":"_input","nameLocation":"4366:6:166","nodeType":"VariableDeclaration","scope":99339,"src":"4351:21:166","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":99335,"name":"bytes","nodeType":"ElementaryTypeName","src":"4351:5:166","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4308:65:166"},"returnParameters":{"id":99338,"nodeType":"ParameterList","parameters":[],"src":"4382:0:166"},"scope":99340,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPreimageOracle","contractDependencies":[],"contractKind":"interface","documentation":{"id":99271,"nodeType":"StructuredDocumentation","src":"57:72:166","text":"@title IPreimageOracle\n @notice Interface for a preimage oracle."},"fullyImplemented":false,"linearizedBaseContracts":[99340],"name":"IPreimageOracle","nameLocation":"139:15:166","scope":99341,"usedErrors":[]}],"license":"MIT"},"id":166}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"ISchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The interface of global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/ISchemaRegistry.sol\":\"ISchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/ISchemaRegistry.sol":"ISchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"ISchemaRegistry"},"id":9}
{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"ISchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The interface of global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/ISchemaRegistry.sol\":\"ISchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/ISchemaRegistry.sol":"ISchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"ISchemaRegistry"},"ast":{"absolutePath":"src/EAS/ISchemaRegistry.sol","id":3622,"exportedSymbols":{"ISchemaRegistry":[3621],"ISchemaResolver":[4157],"SchemaRecord":[3587]},"nodeType":"SourceUnit","src":"32:1523:9","nodes":[{"id":3575,"nodeType":"PragmaDirective","src":"32:23:9","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":3577,"nodeType":"ImportDirective","src":"57:71:9","nodes":[],"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","file":"src/EAS/resolver/ISchemaResolver.sol","nameLocation":"-1:-1:-1","scope":3622,"sourceUnit":4158,"symbolAliases":[{"foreign":{"id":3576,"name":"ISchemaResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"66:15:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3587,"nodeType":"StructDefinition","src":"196:285:9","nodes":[],"canonicalName":"SchemaRecord","members":[{"constant":false,"id":3579,"mutability":"mutable","name":"uid","nameLocation":"230:3:9","nodeType":"VariableDeclaration","scope":3587,"src":"222:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3582,"mutability":"mutable","name":"resolver","nameLocation":"295:8:9","nodeType":"VariableDeclaration","scope":3587,"src":"279:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3581,"nodeType":"UserDefinedTypeName","pathNode":{"id":3580,"name":"ISchemaResolver","nameLocations":["279:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"279:15:9"},"referencedDeclaration":4157,"src":"279:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3584,"mutability":"mutable","name":"revocable","nameLocation":"343:9:9","nodeType":"VariableDeclaration","scope":3587,"src":"338:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3583,"name":"bool","nodeType":"ElementaryTypeName","src":"338:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3586,"mutability":"mutable","name":"schema","nameLocation":"418:6:9","nodeType":"VariableDeclaration","scope":3587,"src":"411:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3585,"name":"string","nodeType":"ElementaryTypeName","src":"411:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"SchemaRecord","nameLocation":"203:12:9","scope":3622,"visibility":"public"},{"id":3621,"nodeType":"ContractDefinition","src":"613:941:9","nodes":[{"id":3598,"nodeType":"EventDefinition","src":"860:87:9","nodes":[],"anonymous":false,"documentation":{"id":3589,"nodeType":"StructuredDocumentation","src":"645:210:9","text":"@dev Emitted when a new schema has been registered\n @param uid The schema UID.\n @param registerer The address of the account used to register the schema.\n @param schema The schema data."},"eventSelector":"d0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e","name":"Registered","nameLocation":"866:10:9","parameters":{"id":3597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"uid","nameLocation":"893:3:9","nodeType":"VariableDeclaration","scope":3598,"src":"877:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"877:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":true,"mutability":"mutable","name":"registerer","nameLocation":"914:10:9","nodeType":"VariableDeclaration","scope":3598,"src":"898:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3592,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3596,"indexed":false,"mutability":"mutable","name":"schema","nameLocation":"939:6:9","nodeType":"VariableDeclaration","scope":3598,"src":"926:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3595,"nodeType":"UserDefinedTypeName","pathNode":{"id":3594,"name":"SchemaRecord","nameLocations":["926:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"926:12:9"},"referencedDeclaration":3587,"src":"926:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"876:70:9"}},{"id":3611,"nodeType":"FunctionDefinition","src":"1217:111:9","nodes":[],"documentation":{"id":3599,"nodeType":"StructuredDocumentation","src":"953:259:9","text":"@dev Submits and reserves a new schema\n @param schema The schema data schema.\n @param resolver An optional schema resolver.\n @param revocable Whether the schema allows revocations explicitly.\n @return The UID of the new schema."},"functionSelector":"60d7a278","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"1226:8:9","parameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3601,"mutability":"mutable","name":"schema","nameLocation":"1251:6:9","nodeType":"VariableDeclaration","scope":3611,"src":"1235:22:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3600,"name":"string","nodeType":"ElementaryTypeName","src":"1235:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3604,"mutability":"mutable","name":"resolver","nameLocation":"1275:8:9","nodeType":"VariableDeclaration","scope":3611,"src":"1259:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3603,"nodeType":"UserDefinedTypeName","pathNode":{"id":3602,"name":"ISchemaResolver","nameLocations":["1259:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"1259:15:9"},"referencedDeclaration":4157,"src":"1259:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"revocable","nameLocation":"1290:9:9","nodeType":"VariableDeclaration","scope":3611,"src":"1285:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3605,"name":"bool","nodeType":"ElementaryTypeName","src":"1285:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:66:9"},"returnParameters":{"id":3610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3611,"src":"1319:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1319:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1318:9:9"},"scope":3621,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3620,"nodeType":"FunctionDefinition","src":"1476:76:9","nodes":[],"documentation":{"id":3612,"nodeType":"StructuredDocumentation","src":"1334:137:9","text":"@dev Returns an existing schema by UID\n @param uid The UID of the schema to retrieve.\n @return The schema data members."},"functionSelector":"a2ea7c6e","implemented":false,"kind":"function","modifiers":[],"name":"getSchema","nameLocation":"1485:9:9","parameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"uid","nameLocation":"1503:3:9","nodeType":"VariableDeclaration","scope":3620,"src":"1495:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1495:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1494:13:9"},"returnParameters":{"id":3619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3620,"src":"1531:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3617,"nodeType":"UserDefinedTypeName","pathNode":{"id":3616,"name":"SchemaRecord","nameLocations":["1531:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1531:12:9"},"referencedDeclaration":3587,"src":"1531:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1530:21:9"},"scope":3621,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISchemaRegistry","contractDependencies":[],"contractKind":"interface","documentation":{"id":3588,"nodeType":"StructuredDocumentation","src":"483:130:9","text":"@title ISchemaRegistry\n @notice The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"fullyImplemented":false,"linearizedBaseContracts":[3621],"name":"ISchemaRegistry","nameLocation":"623:15:9","scope":3622,"usedErrors":[]}],"license":"MIT"},"id":9}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}}},\"title\":\"ISchemaResolver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"}},\"notice\":\"The interface of an optional schema resolver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/resolver/ISchemaResolver.sol\":\"ISchemaResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/resolver/ISchemaResolver.sol":"ISchemaResolver"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"notice":"The interface of an optional schema resolver."},"devdoc":{"version":1,"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"title":"ISchemaResolver"},"id":12}
{"abi":[{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}}},\"title\":\"ISchemaResolver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"}},\"notice\":\"The interface of an optional schema resolver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/resolver/ISchemaResolver.sol\":\"ISchemaResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/resolver/ISchemaResolver.sol":"ISchemaResolver"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"notice":"The interface of an optional schema resolver."},"devdoc":{"version":1,"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"title":"ISchemaResolver"},"ast":{"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","id":4158,"exportedSymbols":{"Attestation":[1207],"ISchemaResolver":[4157]},"nodeType":"SourceUnit","src":"32:1829:12","nodes":[{"id":4103,"nodeType":"PragmaDirective","src":"32:23:12","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":4105,"nodeType":"ImportDirective","src":"57:44:12","nodes":[],"absolutePath":"src/EAS/Common.sol","file":"../Common.sol","nameLocation":"-1:-1:-1","scope":4158,"sourceUnit":1336,"symbolAliases":[{"foreign":{"id":4104,"name":"Attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"66:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4157,"nodeType":"ContractDefinition","src":"188:1672:12","nodes":[{"id":4112,"nodeType":"FunctionDefinition","src":"337:50:12","nodes":[],"documentation":{"id":4107,"nodeType":"StructuredDocumentation","src":"220:112:12","text":"@notice Checks if the resolver can be sent ETH.\n @return Whether the resolver supports ETH transfers."},"functionSelector":"ce46e046","implemented":false,"kind":"function","modifiers":[],"name":"isPayable","nameLocation":"346:9:12","parameters":{"id":4108,"nodeType":"ParameterList","parameters":[],"src":"355:2:12"},"returnParameters":{"id":4111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4112,"src":"381:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4109,"name":"bool","nodeType":"ElementaryTypeName","src":"381:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"380:6:12"},"scope":4157,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":4121,"nodeType":"FunctionDefinition","src":"565:82:12","nodes":[],"documentation":{"id":4113,"nodeType":"StructuredDocumentation","src":"393:167:12","text":"@notice Processes an attestation and verifies whether it's valid.\n @param attestation The new attestation.\n @return Whether the attestation is valid."},"functionSelector":"e60c3505","implemented":false,"kind":"function","modifiers":[],"name":"attest","nameLocation":"574:6:12","parameters":{"id":4117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4116,"mutability":"mutable","name":"attestation","nameLocation":"602:11:12","nodeType":"VariableDeclaration","scope":4121,"src":"581:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_calldata_ptr","typeString":"struct Attestation"},"typeName":{"id":4115,"nodeType":"UserDefinedTypeName","pathNode":{"id":4114,"name":"Attestation","nameLocations":["581:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"581:11:12"},"referencedDeclaration":1207,"src":"581:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"visibility":"internal"}],"src":"580:34:12"},"returnParameters":{"id":4120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4121,"src":"641:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4118,"name":"bool","nodeType":"ElementaryTypeName","src":"641:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"640:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4134,"nodeType":"FunctionDefinition","src":"926:163:12","nodes":[],"documentation":{"id":4122,"nodeType":"StructuredDocumentation","src":"653:268:12","text":"@notice Processes multiple attestations and verifies whether they are valid.\n @param attestations The new attestations.\n @param values Explicit ETH amounts which were sent with each attestation.\n @return Whether all the attestations are valid."},"functionSelector":"91db0b7e","implemented":false,"kind":"function","modifiers":[],"name":"multiAttest","nameLocation":"935:11:12","parameters":{"id":4130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4126,"mutability":"mutable","name":"attestations","nameLocation":"979:12:12","nodeType":"VariableDeclaration","scope":4134,"src":"956:35:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Attestation[]"},"typeName":{"baseType":{"id":4124,"nodeType":"UserDefinedTypeName","pathNode":{"id":4123,"name":"Attestation","nameLocations":["956:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"956:11:12"},"referencedDeclaration":1207,"src":"956:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"id":4125,"nodeType":"ArrayTypeName","src":"956:13:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_storage_$dyn_storage_ptr","typeString":"struct Attestation[]"}},"visibility":"internal"},{"constant":false,"id":4129,"mutability":"mutable","name":"values","nameLocation":"1020:6:12","nodeType":"VariableDeclaration","scope":4134,"src":"1001:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4128,"nodeType":"ArrayTypeName","src":"1001:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"946:86:12"},"returnParameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4134,"src":"1083:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4131,"name":"bool","nodeType":"ElementaryTypeName","src":"1083:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1082:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4143,"nodeType":"FunctionDefinition","src":"1305:82:12","nodes":[],"documentation":{"id":4135,"nodeType":"StructuredDocumentation","src":"1095:205:12","text":"@notice Processes an attestation revocation and verifies if it can be revoked.\n @param attestation The existing attestation to be revoked.\n @return Whether the attestation can be revoked."},"functionSelector":"e49617e1","implemented":false,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"1314:6:12","parameters":{"id":4139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4138,"mutability":"mutable","name":"attestation","nameLocation":"1342:11:12","nodeType":"VariableDeclaration","scope":4143,"src":"1321:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_calldata_ptr","typeString":"struct Attestation"},"typeName":{"id":4137,"nodeType":"UserDefinedTypeName","pathNode":{"id":4136,"name":"Attestation","nameLocations":["1321:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"1321:11:12"},"referencedDeclaration":1207,"src":"1321:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"visibility":"internal"}],"src":"1320:34:12"},"returnParameters":{"id":4142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4143,"src":"1381:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4140,"name":"bool","nodeType":"ElementaryTypeName","src":"1381:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1380:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4156,"nodeType":"FunctionDefinition","src":"1695:163:12","nodes":[],"documentation":{"id":4144,"nodeType":"StructuredDocumentation","src":"1393:297:12","text":"@notice Processes revocation of multiple attestation and verifies they can be revoked.\n @param attestations The existing attestations to be revoked.\n @param values Explicit ETH amounts which were sent with each revocation.\n @return Whether the attestations can be revoked."},"functionSelector":"88e5b2d9","implemented":false,"kind":"function","modifiers":[],"name":"multiRevoke","nameLocation":"1704:11:12","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4148,"mutability":"mutable","name":"attestations","nameLocation":"1748:12:12","nodeType":"VariableDeclaration","scope":4156,"src":"1725:35:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Attestation[]"},"typeName":{"baseType":{"id":4146,"nodeType":"UserDefinedTypeName","pathNode":{"id":4145,"name":"Attestation","nameLocations":["1725:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"1725:11:12"},"referencedDeclaration":1207,"src":"1725:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"id":4147,"nodeType":"ArrayTypeName","src":"1725:13:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_storage_$dyn_storage_ptr","typeString":"struct Attestation[]"}},"visibility":"internal"},{"constant":false,"id":4151,"mutability":"mutable","name":"values","nameLocation":"1789:6:12","nodeType":"VariableDeclaration","scope":4156,"src":"1770:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4149,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4150,"nodeType":"ArrayTypeName","src":"1770:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1715:86:12"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4156,"src":"1852:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4153,"name":"bool","nodeType":"ElementaryTypeName","src":"1852:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1851:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISchemaResolver","contractDependencies":[],"contractKind":"interface","documentation":{"id":4106,"nodeType":"StructuredDocumentation","src":"103:85:12","text":"@title ISchemaResolver\n @notice The interface of an optional schema resolver."},"fullyImplemented":false,"linearizedBaseContracts":[4157],"name":"ISchemaResolver","nameLocation":"198:15:12","scope":4158,"usedErrors":[]}],"license":"MIT"},"id":12}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"london","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"id":223}
{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"london","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"ast":{"absolutePath":"src/universal/ISemver.sol","id":113622,"exportedSymbols":{"ISemver":[113621]},"nodeType":"SourceUnit","src":"32:487:239","nodes":[{"id":113613,"nodeType":"PragmaDirective","src":"32:23:239","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":113621,"nodeType":"ContractDefinition","src":"198:320:239","nodes":[{"id":113620,"nodeType":"FunctionDefinition","src":"459:57:239","nodes":[],"documentation":{"id":113615,"nodeType":"StructuredDocumentation","src":"222:232:239","text":"@notice Getter for the semantic version of the contract. This is not\n meant to be used onchain but instead meant to be used by offchain\n tooling.\n @return Semver contract version as a string."},"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"468:7:239","parameters":{"id":113616,"nodeType":"ParameterList","parameters":[],"src":"475:2:239"},"returnParameters":{"id":113619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":113620,"src":"501:13:239","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":113617,"name":"string","nodeType":"ElementaryTypeName","src":"501:6:239","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"500:15:239"},"scope":113621,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISemver","contractDependencies":[],"contractKind":"interface","documentation":{"id":113614,"nodeType":"StructuredDocumentation","src":"57:141:239","text":"@title ISemver\n @notice ISemver is a simple contract for ensuring that contracts are\n versioned using semantic versioning."},"fullyImplemented":false,"linearizedBaseContracts":[113621],"name":"ISemver","nameLocation":"208:7:239","scope":113622,"usedErrors":[]}],"license":"MIT"},"id":239}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"paris","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"id":15}
{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"paris","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"ast":{"absolutePath":"src/universal/ISemver.sol","id":4923,"exportedSymbols":{"ISemver":[4922]},"nodeType":"SourceUnit","src":"32:487:15","nodes":[{"id":4914,"nodeType":"PragmaDirective","src":"32:23:15","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":4922,"nodeType":"ContractDefinition","src":"198:320:15","nodes":[{"id":4921,"nodeType":"FunctionDefinition","src":"459:57:15","nodes":[],"documentation":{"id":4916,"nodeType":"StructuredDocumentation","src":"222:232:15","text":"@notice Getter for the semantic version of the contract. This is not\n meant to be used onchain but instead meant to be used by offchain\n tooling.\n @return Semver contract version as a string."},"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"468:7:15","parameters":{"id":4917,"nodeType":"ParameterList","parameters":[],"src":"475:2:15"},"returnParameters":{"id":4920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4921,"src":"501:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4918,"name":"string","nodeType":"ElementaryTypeName","src":"501:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"500:15:15"},"scope":4922,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISemver","contractDependencies":[],"contractKind":"interface","documentation":{"id":4915,"nodeType":"StructuredDocumentation","src":"57:141:15","text":"@title ISemver\n @notice ISemver is a simple contract for ensuring that contracts are\n versioned using semantic versioning."},"fullyImplemented":false,"linearizedBaseContracts":[4922],"name":"ISemver","nameLocation":"208:7:15","scope":4923,"usedErrors":[]}],"license":"MIT"},"id":15}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"paris","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"id":107}
{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"cancun","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"ast":{"absolutePath":"src/universal/ISemver.sol","id":49207,"exportedSymbols":{"ISemver":[49206]},"nodeType":"SourceUnit","src":"32:487:33","nodes":[{"id":49198,"nodeType":"PragmaDirective","src":"32:23:33","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49206,"nodeType":"ContractDefinition","src":"198:320:33","nodes":[{"id":49205,"nodeType":"FunctionDefinition","src":"459:57:33","nodes":[],"documentation":{"id":49200,"nodeType":"StructuredDocumentation","src":"222:232:33","text":"@notice Getter for the semantic version of the contract. This is not\n meant to be used onchain but instead meant to be used by offchain\n tooling.\n @return Semver contract version as a string."},"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"468:7:33","parameters":{"id":49201,"nodeType":"ParameterList","parameters":[],"src":"475:2:33"},"returnParameters":{"id":49204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49205,"src":"501:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49202,"name":"string","nodeType":"ElementaryTypeName","src":"501:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"500:15:33"},"scope":49206,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISemver","contractDependencies":[],"contractKind":"interface","documentation":{"id":49199,"nodeType":"StructuredDocumentation","src":"57:141:33","text":"@title ISemver\n @notice ISemver is a simple contract for ensuring that contracts are\n versioned using semantic versioning."},"fullyImplemented":false,"linearizedBaseContracts":[49206],"name":"ISemver","nameLocation":"208:7:33","scope":49207,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":33}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"gasLimit","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resourceConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ResourceMetering.ResourceConfig","components":[{"name":"maxResourceLimit","type":"uint32","internalType":"uint32"},{"name":"elasticityMultiplier","type":"uint8","internalType":"uint8"},{"name":"baseFeeMaxChangeDenominator","type":"uint8","internalType":"uint8"},{"name":"minimumBaseFee","type":"uint32","internalType":"uint32"},{"name":"systemTxMaxGas","type":"uint32","internalType":"uint32"},{"name":"maximumBaseFee","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unsafeBlockSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","batcherHash()":"e81b2c6d","gasLimit()":"f68016b7","overhead()":"0c18c162","owner()":"8da5cb5b","resourceConfig()":"cc731b02","scalar()":"f45e65d8","unsafeBlockSigner()":"1fd19ee1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resourceConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}],\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unsafeBlockSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ISystemConfigV0\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/ISystemConfigV0.sol\":\"ISystemConfigV0\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"scripts/interfaces/ISystemConfigV0.sol\":{\"keccak256\":\"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff\",\"dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resourceConfig","outputs":[{"internalType":"struct ResourceMetering.ResourceConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxResourceLimit","type":"uint32"},{"internalType":"uint8","name":"elasticityMultiplier","type":"uint8"},{"internalType":"uint8","name":"baseFeeMaxChangeDenominator","type":"uint8"},{"internalType":"uint32","name":"minimumBaseFee","type":"uint32"},{"internalType":"uint32","name":"systemTxMaxGas","type":"uint32"},{"internalType":"uint128","name":"maximumBaseFee","type":"uint128"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unsafeBlockSigner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/ISystemConfigV0.sol":"ISystemConfigV0"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"scripts/interfaces/ISystemConfigV0.sol":{"keccak256":"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf","urls":["bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff","dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"devdoc":{"version":1,"kind":"dev","title":"ISystemConfigV0"},"id":122}
{"abi":[{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"gasLimit","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resourceConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ResourceMetering.ResourceConfig","components":[{"name":"maxResourceLimit","type":"uint32","internalType":"uint32"},{"name":"elasticityMultiplier","type":"uint8","internalType":"uint8"},{"name":"baseFeeMaxChangeDenominator","type":"uint8","internalType":"uint8"},{"name":"minimumBaseFee","type":"uint32","internalType":"uint32"},{"name":"systemTxMaxGas","type":"uint32","internalType":"uint32"},{"name":"maximumBaseFee","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unsafeBlockSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","batcherHash()":"e81b2c6d","gasLimit()":"f68016b7","overhead()":"0c18c162","owner()":"8da5cb5b","resourceConfig()":"cc731b02","scalar()":"f45e65d8","unsafeBlockSigner()":"1fd19ee1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resourceConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}],\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unsafeBlockSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ISystemConfigV0\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/ISystemConfigV0.sol\":\"ISystemConfigV0\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"scripts/interfaces/ISystemConfigV0.sol\":{\"keccak256\":\"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff\",\"dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resourceConfig","outputs":[{"internalType":"struct ResourceMetering.ResourceConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxResourceLimit","type":"uint32"},{"internalType":"uint8","name":"elasticityMultiplier","type":"uint8"},{"internalType":"uint8","name":"baseFeeMaxChangeDenominator","type":"uint8"},{"internalType":"uint32","name":"minimumBaseFee","type":"uint32"},{"internalType":"uint32","name":"systemTxMaxGas","type":"uint32"},{"internalType":"uint128","name":"maximumBaseFee","type":"uint128"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unsafeBlockSigner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/ISystemConfigV0.sol":"ISystemConfigV0"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"scripts/interfaces/ISystemConfigV0.sol":{"keccak256":"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf","urls":["bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff","dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"devdoc":{"version":1,"kind":"dev","title":"ISystemConfigV0"},"ast":{"absolutePath":"scripts/interfaces/ISystemConfigV0.sol","id":84067,"exportedSymbols":{"ISystemConfigV0":[84066],"ResourceMetering":[89958]},"nodeType":"SourceUnit","src":"32:895:129","nodes":[{"id":84021,"nodeType":"PragmaDirective","src":"32:23:129","nodes":[],"literals":["solidity","0.8",".15"]},{"id":84023,"nodeType":"ImportDirective","src":"57:63:129","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":84067,"sourceUnit":89959,"symbolAliases":[{"foreign":{"id":84022,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89958,"src":"66:16:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84066,"nodeType":"ContractDefinition","src":"399:527:129","nodes":[{"id":84029,"nodeType":"FunctionDefinition","src":"431:49:129","nodes":[],"functionSelector":"8da5cb5b","implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"440:5:129","parameters":{"id":84025,"nodeType":"ParameterList","parameters":[],"src":"445:2:129"},"returnParameters":{"id":84028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84029,"src":"471:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84026,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"470:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84034,"nodeType":"FunctionDefinition","src":"485:51:129","nodes":[],"functionSelector":"ffa1ad74","implemented":false,"kind":"function","modifiers":[],"name":"VERSION","nameLocation":"494:7:129","parameters":{"id":84030,"nodeType":"ParameterList","parameters":[],"src":"501:2:129"},"returnParameters":{"id":84033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84034,"src":"527:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84031,"name":"uint256","nodeType":"ElementaryTypeName","src":"527:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"526:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84039,"nodeType":"FunctionDefinition","src":"541:52:129","nodes":[],"functionSelector":"0c18c162","implemented":false,"kind":"function","modifiers":[],"name":"overhead","nameLocation":"550:8:129","parameters":{"id":84035,"nodeType":"ParameterList","parameters":[],"src":"558:2:129"},"returnParameters":{"id":84038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84039,"src":"584:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84036,"name":"uint256","nodeType":"ElementaryTypeName","src":"584:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"583:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84044,"nodeType":"FunctionDefinition","src":"598:50:129","nodes":[],"functionSelector":"f45e65d8","implemented":false,"kind":"function","modifiers":[],"name":"scalar","nameLocation":"607:6:129","parameters":{"id":84040,"nodeType":"ParameterList","parameters":[],"src":"613:2:129"},"returnParameters":{"id":84043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84044,"src":"639:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84041,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84049,"nodeType":"FunctionDefinition","src":"653:55:129","nodes":[],"functionSelector":"e81b2c6d","implemented":false,"kind":"function","modifiers":[],"name":"batcherHash","nameLocation":"662:11:129","parameters":{"id":84045,"nodeType":"ParameterList","parameters":[],"src":"673:2:129"},"returnParameters":{"id":84048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84049,"src":"699:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"699:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"698:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84054,"nodeType":"FunctionDefinition","src":"713:51:129","nodes":[],"functionSelector":"f68016b7","implemented":false,"kind":"function","modifiers":[],"name":"gasLimit","nameLocation":"722:8:129","parameters":{"id":84050,"nodeType":"ParameterList","parameters":[],"src":"730:2:129"},"returnParameters":{"id":84053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84054,"src":"756:6:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":84051,"name":"uint64","nodeType":"ElementaryTypeName","src":"756:6:129","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"755:8:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84060,"nodeType":"FunctionDefinition","src":"769:89:129","nodes":[],"functionSelector":"cc731b02","implemented":false,"kind":"function","modifiers":[],"name":"resourceConfig","nameLocation":"778:14:129","parameters":{"id":84055,"nodeType":"ParameterList","parameters":[],"src":"792:2:129"},"returnParameters":{"id":84059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84060,"src":"818:38:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":84057,"nodeType":"UserDefinedTypeName","pathNode":{"id":84056,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":89619,"src":"818:31:129"},"referencedDeclaration":89619,"src":"818:31:129","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$89619_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"817:40:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":84065,"nodeType":"FunctionDefinition","src":"863:61:129","nodes":[],"functionSelector":"1fd19ee1","implemented":false,"kind":"function","modifiers":[],"name":"unsafeBlockSigner","nameLocation":"872:17:129","parameters":{"id":84061,"nodeType":"ParameterList","parameters":[],"src":"889:2:129"},"returnParameters":{"id":84064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84065,"src":"915:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84062,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"914:9:129"},"scope":84066,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISystemConfigV0","contractDependencies":[],"contractKind":"interface","documentation":{"id":84024,"nodeType":"StructuredDocumentation","src":"122:277:129","text":"@title ISystemConfigV0\n @notice Minimal interface of the Legacy SystemConfig containing only getters.\n Based on\n https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"fullyImplemented":false,"linearizedBaseContracts":[84066],"name":"ISystemConfigV0","nameLocation":"409:15:129","scope":84067,"usedErrors":[]}],"license":"MIT"},"id":129}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":"IVotes"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0","urls":["bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86","dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"events":{"DelegateChanged(address,address,address)":{"details":"Emitted when an account changes their delegate."},"DelegateVotesChanged(address,uint256,uint256)":{"details":"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."}}},"id":39}
{"abi":[{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":"IVotes"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0","urls":["bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86","dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"events":{"DelegateChanged(address,address,address)":{"details":"Emitted when an account changes their delegate."},"DelegateVotesChanged(address,uint256,uint256)":{"details":"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol","id":49657,"exportedSymbols":{"IVotes":[49656]},"nodeType":"SourceUnit","src":"110:1954:41","nodes":[{"id":49580,"nodeType":"PragmaDirective","src":"110:23:41","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49656,"nodeType":"ContractDefinition","src":"268:1795:41","nodes":[{"id":49590,"nodeType":"EventDefinition","src":"367:107:41","nodes":[],"anonymous":false,"documentation":{"id":49582,"nodeType":"StructuredDocumentation","src":"291:71:41","text":" @dev Emitted when an account changes their delegate."},"eventSelector":"3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f","name":"DelegateChanged","nameLocation":"373:15:41","parameters":{"id":49589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49584,"indexed":true,"mutability":"mutable","name":"delegator","nameLocation":"405:9:41","nodeType":"VariableDeclaration","scope":49590,"src":"389:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49583,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49586,"indexed":true,"mutability":"mutable","name":"fromDelegate","nameLocation":"432:12:41","nodeType":"VariableDeclaration","scope":49590,"src":"416:28:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49585,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49588,"indexed":true,"mutability":"mutable","name":"toDelegate","nameLocation":"462:10:41","nodeType":"VariableDeclaration","scope":49590,"src":"446:26:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49587,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:85:41"}},{"id":49599,"nodeType":"EventDefinition","src":"609:98:41","nodes":[],"anonymous":false,"documentation":{"id":49591,"nodeType":"StructuredDocumentation","src":"480:124:41","text":" @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."},"eventSelector":"dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","name":"DelegateVotesChanged","nameLocation":"615:20:41","parameters":{"id":49598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49593,"indexed":true,"mutability":"mutable","name":"delegate","nameLocation":"652:8:41","nodeType":"VariableDeclaration","scope":49599,"src":"636:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49592,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49595,"indexed":false,"mutability":"mutable","name":"previousBalance","nameLocation":"670:15:41","nodeType":"VariableDeclaration","scope":49599,"src":"662:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49594,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49597,"indexed":false,"mutability":"mutable","name":"newBalance","nameLocation":"695:10:41","nodeType":"VariableDeclaration","scope":49599,"src":"687:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49596,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:71:41"}},{"id":49607,"nodeType":"FunctionDefinition","src":"797:67:41","nodes":[],"documentation":{"id":49600,"nodeType":"StructuredDocumentation","src":"713:79:41","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"806:8:41","parameters":{"id":49603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49602,"mutability":"mutable","name":"account","nameLocation":"823:7:41","nodeType":"VariableDeclaration","scope":49607,"src":"815:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49601,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"814:17:41"},"returnParameters":{"id":49606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49607,"src":"855:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49604,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"854:9:41"},"scope":49656,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49617,"nodeType":"FunctionDefinition","src":"989:92:41","nodes":[],"documentation":{"id":49608,"nodeType":"StructuredDocumentation","src":"870:114:41","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"functionSelector":"3a46b1a8","implemented":false,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"998:12:41","parameters":{"id":49613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49610,"mutability":"mutable","name":"account","nameLocation":"1019:7:41","nodeType":"VariableDeclaration","scope":49617,"src":"1011:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49609,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49612,"mutability":"mutable","name":"blockNumber","nameLocation":"1036:11:41","nodeType":"VariableDeclaration","scope":49617,"src":"1028:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:38:41"},"returnParameters":{"id":49616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49617,"src":"1072:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49614,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:41"},"scope":49656,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49625,"nodeType":"FunctionDefinition","src":"1457:81:41","nodes":[],"documentation":{"id":49618,"nodeType":"StructuredDocumentation","src":"1087:365:41","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote."},"functionSelector":"8e539e8c","implemented":false,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"1466:18:41","parameters":{"id":49621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49620,"mutability":"mutable","name":"blockNumber","nameLocation":"1493:11:41","nodeType":"VariableDeclaration","scope":49625,"src":"1485:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49619,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1484:21:41"},"returnParameters":{"id":49624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49625,"src":"1529:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:9:41"},"scope":49656,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49633,"nodeType":"FunctionDefinition","src":"1620:68:41","nodes":[],"documentation":{"id":49626,"nodeType":"StructuredDocumentation","src":"1544:71:41","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","implemented":false,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"1629:9:41","parameters":{"id":49629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49628,"mutability":"mutable","name":"account","nameLocation":"1647:7:41","nodeType":"VariableDeclaration","scope":49633,"src":"1639:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49627,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1638:17:41"},"returnParameters":{"id":49632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49633,"src":"1679:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49630,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:41"},"scope":49656,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49639,"nodeType":"FunctionDefinition","src":"1770:46:41","nodes":[],"documentation":{"id":49634,"nodeType":"StructuredDocumentation","src":"1694:71:41","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","implemented":false,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"1779:8:41","parameters":{"id":49637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49636,"mutability":"mutable","name":"delegatee","nameLocation":"1796:9:41","nodeType":"VariableDeclaration","scope":49639,"src":"1788:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49635,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:19:41"},"returnParameters":{"id":49638,"nodeType":"ParameterList","parameters":[],"src":"1815:0:41"},"scope":49656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49655,"nodeType":"FunctionDefinition","src":"1894:167:41","nodes":[],"documentation":{"id":49640,"nodeType":"StructuredDocumentation","src":"1822:67:41","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","implemented":false,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"1903:13:41","parameters":{"id":49653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49642,"mutability":"mutable","name":"delegatee","nameLocation":"1934:9:41","nodeType":"VariableDeclaration","scope":49655,"src":"1926:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49641,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49644,"mutability":"mutable","name":"nonce","nameLocation":"1961:5:41","nodeType":"VariableDeclaration","scope":49655,"src":"1953:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49646,"mutability":"mutable","name":"expiry","nameLocation":"1984:6:41","nodeType":"VariableDeclaration","scope":49655,"src":"1976:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49645,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49648,"mutability":"mutable","name":"v","nameLocation":"2006:1:41","nodeType":"VariableDeclaration","scope":49655,"src":"2000:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49647,"name":"uint8","nodeType":"ElementaryTypeName","src":"2000:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":49650,"mutability":"mutable","name":"r","nameLocation":"2025:1:41","nodeType":"VariableDeclaration","scope":49655,"src":"2017:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2017:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49652,"mutability":"mutable","name":"s","nameLocation":"2044:1:41","nodeType":"VariableDeclaration","scope":49655,"src":"2036:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2036:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1916:135:41"},"returnParameters":{"id":49654,"nodeType":"ParameterList","parameters":[],"src":"2060:0:41"},"scope":49656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IVotes","contractDependencies":[],"contractKind":"interface","documentation":{"id":49581,"nodeType":"StructuredDocumentation","src":"135:132:41","text":" @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n _Available since v4.5._"},"fullyImplemented":false,"linearizedBaseContracts":[49656],"name":"IVotes","nameLocation":"278:6:41","scope":49657,"usedErrors":[]}],"license":"MIT"},"id":41}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheats\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheats"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":22}
{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheats\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheats"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","id":46891,"exportedSymbols":{"KontrolCheats":[46890],"KontrolCheatsBase":[46849]},"nodeType":"SourceUnit","src":"32:2419:24","nodes":[{"id":46759,"nodeType":"PragmaDirective","src":"32:31:24","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":46760,"nodeType":"PragmaDirective","src":"64:33:24","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":46849,"nodeType":"ContractDefinition","src":"99:1874:24","nodes":[{"id":46767,"nodeType":"FunctionDefinition","src":"220:60:24","nodes":[],"functionSelector":"bd79af28","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"229:17:24","parameters":{"id":46765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46767,"src":"247:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46761,"name":"address","nodeType":"ElementaryTypeName","src":"247:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46767,"src":"255:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46763,"name":"bytes","nodeType":"ElementaryTypeName","src":"255:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"246:24:24"},"returnParameters":{"id":46766,"nodeType":"ParameterList","parameters":[],"src":"279:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46776,"nodeType":"FunctionDefinition","src":"386:68:24","nodes":[],"functionSelector":"75a12b47","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"395:17:24","parameters":{"id":46774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"413:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46768,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"421:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46770,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"429:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46772,"name":"bytes","nodeType":"ElementaryTypeName","src":"429:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"412:32:24"},"returnParameters":{"id":46775,"nodeType":"ParameterList","parameters":[],"src":"453:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46783,"nodeType":"FunctionDefinition","src":"531:59:24","nodes":[],"functionSelector":"85180b6c","implemented":false,"kind":"function","modifiers":[],"name":"expectStaticCall","nameLocation":"540:16:24","parameters":{"id":46781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46783,"src":"557:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46777,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46783,"src":"565:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46779,"name":"bytes","nodeType":"ElementaryTypeName","src":"565:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"556:24:24"},"returnParameters":{"id":46782,"nodeType":"ParameterList","parameters":[],"src":"589:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46790,"nodeType":"FunctionDefinition","src":"669:61:24","nodes":[],"functionSelector":"3d6ac1e7","implemented":false,"kind":"function","modifiers":[],"name":"expectDelegateCall","nameLocation":"678:18:24","parameters":{"id":46788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46790,"src":"697:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46784,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46790,"src":"705:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46786,"name":"bytes","nodeType":"ElementaryTypeName","src":"705:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"696:24:24"},"returnParameters":{"id":46789,"nodeType":"ParameterList","parameters":[],"src":"729:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46793,"nodeType":"FunctionDefinition","src":"812:33:24","nodes":[],"functionSelector":"e627e488","implemented":false,"kind":"function","modifiers":[],"name":"expectNoCall","nameLocation":"821:12:24","parameters":{"id":46791,"nodeType":"ParameterList","parameters":[],"src":"833:2:24"},"returnParameters":{"id":46792,"nodeType":"ParameterList","parameters":[],"src":"844:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46802,"nodeType":"FunctionDefinition","src":"973:63:24","nodes":[],"functionSelector":"27470f4a","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate","nameLocation":"982:12:24","parameters":{"id":46800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"995:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46794,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"1003:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"1011:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46798,"name":"bytes","nodeType":"ElementaryTypeName","src":"1011:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:32:24"},"returnParameters":{"id":46801,"nodeType":"ParameterList","parameters":[],"src":"1035:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46811,"nodeType":"FunctionDefinition","src":"1196:64:24","nodes":[],"functionSelector":"e5c042be","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate2","nameLocation":"1205:13:24","parameters":{"id":46809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1219:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46803,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1227:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46805,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1235:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1235:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1218:32:24"},"returnParameters":{"id":46810,"nodeType":"ParameterList","parameters":[],"src":"1259:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46816,"nodeType":"FunctionDefinition","src":"1332:43:24","nodes":[],"functionSelector":"2de059ae","implemented":false,"kind":"function","modifiers":[],"name":"symbolicStorage","nameLocation":"1341:15:24","parameters":{"id":46814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46816,"src":"1357:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46812,"name":"address","nodeType":"ElementaryTypeName","src":"1357:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1356:9:24"},"returnParameters":{"id":46815,"nodeType":"ParameterList","parameters":[],"src":"1374:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46821,"nodeType":"FunctionDefinition","src":"1421:47:24","nodes":[],"functionSelector":"6e50e634","implemented":false,"kind":"function","modifiers":[],"name":"allowCallsToAddress","nameLocation":"1430:19:24","parameters":{"id":46819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46821,"src":"1450:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46817,"name":"address","nodeType":"ElementaryTypeName","src":"1450:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1449:9:24"},"returnParameters":{"id":46820,"nodeType":"ParameterList","parameters":[],"src":"1467:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46828,"nodeType":"FunctionDefinition","src":"1533:57:24","nodes":[],"functionSelector":"fac8170c","implemented":false,"kind":"function","modifiers":[],"name":"allowChangesToStorage","nameLocation":"1542:21:24","parameters":{"id":46826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46828,"src":"1564:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46822,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46828,"src":"1572:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1572:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1563:17:24"},"returnParameters":{"id":46827,"nodeType":"ParameterList","parameters":[],"src":"1589:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46831,"nodeType":"FunctionDefinition","src":"1647:32:24","nodes":[],"functionSelector":"ed9f7353","implemented":false,"kind":"function","modifiers":[],"name":"infiniteGas","nameLocation":"1656:11:24","parameters":{"id":46829,"nodeType":"ParameterList","parameters":[],"src":"1667:2:24"},"returnParameters":{"id":46830,"nodeType":"ParameterList","parameters":[],"src":"1678:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46836,"nodeType":"FunctionDefinition","src":"1743:34:24","nodes":[],"functionSelector":"dd51faa2","implemented":false,"kind":"function","modifiers":[],"name":"setGas","nameLocation":"1752:6:24","parameters":{"id":46834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46836,"src":"1759:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46832,"name":"uint256","nodeType":"ElementaryTypeName","src":"1759:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:9:24"},"returnParameters":{"id":46835,"nodeType":"ParameterList","parameters":[],"src":"1776:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46843,"nodeType":"FunctionDefinition","src":"1825:53:24","nodes":[],"functionSelector":"25449d64","implemented":false,"kind":"function","modifiers":[],"name":"freshUInt","nameLocation":"1834:9:24","parameters":{"id":46839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46843,"src":"1844:5:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46837,"name":"uint8","nodeType":"ElementaryTypeName","src":"1844:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1843:7:24"},"returnParameters":{"id":46842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46843,"src":"1869:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46840,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1868:9:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46848,"nodeType":"FunctionDefinition","src":"1923:48:24","nodes":[],"functionSelector":"aefb8969","implemented":false,"kind":"function","modifiers":[],"name":"freshBool","nameLocation":"1932:9:24","parameters":{"id":46844,"nodeType":"ParameterList","parameters":[],"src":"1941:2:24"},"returnParameters":{"id":46847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46848,"src":"1962:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:9:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"KontrolCheatsBase","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[46849],"name":"KontrolCheatsBase","nameLocation":"109:17:24","scope":46891,"usedErrors":[]},{"id":46890,"nodeType":"ContractDefinition","src":"1975:475:24","nodes":[{"id":46866,"nodeType":"VariableDeclaration","src":"2013:115:24","nodes":[],"constant":true,"functionSelector":"d6a2ec76","mutability":"constant","name":"kevm","nameLocation":"2047:4:24","scope":46890,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"},"typeName":{"id":46851,"nodeType":"UserDefinedTypeName","pathNode":{"id":46850,"name":"KontrolCheatsBase","nodeType":"IdentifierPath","referencedDeclaration":46849,"src":"2013:17:24"},"referencedDeclaration":46849,"src":"2013:17:24","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":46860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2106:17:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":46859,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2096:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":46858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2088:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46857,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:24","typeDescriptions":{}}},"id":46862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2088:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2080:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":46855,"name":"uint160","nodeType":"ElementaryTypeName","src":"2080:7:24","typeDescriptions":{}}},"id":46863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2080:46:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":46854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46853,"name":"address","nodeType":"ElementaryTypeName","src":"2072:7:24","typeDescriptions":{}}},"id":46864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46852,"name":"KontrolCheatsBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46849,"src":"2054:17:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KontrolCheatsBase_$46849_$","typeString":"type(contract KontrolCheatsBase)"}},"id":46865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2054:74:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"}},"visibility":"public"},{"id":46889,"nodeType":"FunctionDefinition","src":"2202:246:24","nodes":[],"body":{"id":46888,"nodeType":"Block","src":"2272:176:24","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46873,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46868,"src":"2290:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"363435333236343734343236353437323033333133343130303639313533393035393038353235333632343334333439","id":46876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2306:48:24","typeDescriptions":{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"},"value":"645326474426547203313410069153905908525362434349"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"}],"id":46875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2298:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46874,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:24","typeDescriptions":{}}},"id":46877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2298:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2290:65:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46879,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46868,"src":"2375:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"373238383135353633333835393737303430343532393433373737383739303631343237373536323737333036353138","id":46882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:48:24","typeDescriptions":{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"},"value":"728815563385977040452943777879061427756277306518"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"}],"id":46881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2383:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46880,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:24","typeDescriptions":{}}},"id":46883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2375:65:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2290:150:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":46886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2289:152:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46872,"id":46887,"nodeType":"Return","src":"2282:159:24"}]},"implemented":true,"kind":"function","modifiers":[],"name":"notBuiltinAddress","nameLocation":"2211:17:24","parameters":{"id":46869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46868,"mutability":"mutable","name":"addr","nameLocation":"2237:4:24","nodeType":"VariableDeclaration","scope":46889,"src":"2229:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46867,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2228:14:24"},"returnParameters":{"id":46872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46889,"src":"2266:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46870,"name":"bool","nodeType":"ElementaryTypeName","src":"2266:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2265:6:24"},"scope":46890,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"KontrolCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46890],"name":"KontrolCheats","nameLocation":"1993:13:24","scope":46891,"usedErrors":[]}],"license":"MIT"},"id":24}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowCallsToAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowChangesToStorage","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate2","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectDelegateCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectNoCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectStaticCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"freshBool","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freshUInt","inputs":[{"name":"","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"infiniteGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGas","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbolicStorage","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowCallsToAddress(address)":"6e50e634","allowChangesToStorage(address,uint256)":"fac8170c","expectCreate(address,uint256,bytes)":"27470f4a","expectCreate2(address,uint256,bytes)":"e5c042be","expectDelegateCall(address,bytes)":"3d6ac1e7","expectNoCall()":"e627e488","expectRegularCall(address,bytes)":"bd79af28","expectRegularCall(address,uint256,bytes)":"75a12b47","expectStaticCall(address,bytes)":"85180b6c","freshBool()":"aefb8969","freshUInt(uint8)":"25449d64","infiniteGas()":"ed9f7353","setGas(uint256)":"dd51faa2","symbolicStorage(address)":"2de059ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowCallsToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowChangesToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectNoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectStaticCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freshBool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"freshUInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"infiniteGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"setGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"symbolicStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheatsBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCallsToAddress"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"allowChangesToStorage"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate2"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectDelegateCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectNoCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectStaticCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"freshBool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"freshUInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"infiniteGas"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setGas"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"symbolicStorage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheatsBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":22}
{"abi":[{"type":"function","name":"allowCallsToAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowChangesToStorage","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate2","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectDelegateCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectNoCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectStaticCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"freshBool","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freshUInt","inputs":[{"name":"","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"infiniteGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGas","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbolicStorage","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowCallsToAddress(address)":"6e50e634","allowChangesToStorage(address,uint256)":"fac8170c","expectCreate(address,uint256,bytes)":"27470f4a","expectCreate2(address,uint256,bytes)":"e5c042be","expectDelegateCall(address,bytes)":"3d6ac1e7","expectNoCall()":"e627e488","expectRegularCall(address,bytes)":"bd79af28","expectRegularCall(address,uint256,bytes)":"75a12b47","expectStaticCall(address,bytes)":"85180b6c","freshBool()":"aefb8969","freshUInt(uint8)":"25449d64","infiniteGas()":"ed9f7353","setGas(uint256)":"dd51faa2","symbolicStorage(address)":"2de059ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowCallsToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowChangesToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectNoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectStaticCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freshBool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"freshUInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"infiniteGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"setGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"symbolicStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheatsBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCallsToAddress"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"allowChangesToStorage"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate2"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectDelegateCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectNoCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectStaticCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"freshBool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"freshUInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"infiniteGas"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setGas"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"symbolicStorage"}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheatsBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","id":46891,"exportedSymbols":{"KontrolCheats":[46890],"KontrolCheatsBase":[46849]},"nodeType":"SourceUnit","src":"32:2419:24","nodes":[{"id":46759,"nodeType":"PragmaDirective","src":"32:31:24","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":46760,"nodeType":"PragmaDirective","src":"64:33:24","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":46849,"nodeType":"ContractDefinition","src":"99:1874:24","nodes":[{"id":46767,"nodeType":"FunctionDefinition","src":"220:60:24","nodes":[],"functionSelector":"bd79af28","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"229:17:24","parameters":{"id":46765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46767,"src":"247:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46761,"name":"address","nodeType":"ElementaryTypeName","src":"247:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46767,"src":"255:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46763,"name":"bytes","nodeType":"ElementaryTypeName","src":"255:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"246:24:24"},"returnParameters":{"id":46766,"nodeType":"ParameterList","parameters":[],"src":"279:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46776,"nodeType":"FunctionDefinition","src":"386:68:24","nodes":[],"functionSelector":"75a12b47","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"395:17:24","parameters":{"id":46774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"413:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46768,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"421:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46770,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46776,"src":"429:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46772,"name":"bytes","nodeType":"ElementaryTypeName","src":"429:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"412:32:24"},"returnParameters":{"id":46775,"nodeType":"ParameterList","parameters":[],"src":"453:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46783,"nodeType":"FunctionDefinition","src":"531:59:24","nodes":[],"functionSelector":"85180b6c","implemented":false,"kind":"function","modifiers":[],"name":"expectStaticCall","nameLocation":"540:16:24","parameters":{"id":46781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46783,"src":"557:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46777,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46783,"src":"565:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46779,"name":"bytes","nodeType":"ElementaryTypeName","src":"565:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"556:24:24"},"returnParameters":{"id":46782,"nodeType":"ParameterList","parameters":[],"src":"589:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46790,"nodeType":"FunctionDefinition","src":"669:61:24","nodes":[],"functionSelector":"3d6ac1e7","implemented":false,"kind":"function","modifiers":[],"name":"expectDelegateCall","nameLocation":"678:18:24","parameters":{"id":46788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46790,"src":"697:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46784,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46790,"src":"705:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46786,"name":"bytes","nodeType":"ElementaryTypeName","src":"705:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"696:24:24"},"returnParameters":{"id":46789,"nodeType":"ParameterList","parameters":[],"src":"729:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46793,"nodeType":"FunctionDefinition","src":"812:33:24","nodes":[],"functionSelector":"e627e488","implemented":false,"kind":"function","modifiers":[],"name":"expectNoCall","nameLocation":"821:12:24","parameters":{"id":46791,"nodeType":"ParameterList","parameters":[],"src":"833:2:24"},"returnParameters":{"id":46792,"nodeType":"ParameterList","parameters":[],"src":"844:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46802,"nodeType":"FunctionDefinition","src":"973:63:24","nodes":[],"functionSelector":"27470f4a","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate","nameLocation":"982:12:24","parameters":{"id":46800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"995:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46794,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"1003:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46802,"src":"1011:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46798,"name":"bytes","nodeType":"ElementaryTypeName","src":"1011:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:32:24"},"returnParameters":{"id":46801,"nodeType":"ParameterList","parameters":[],"src":"1035:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46811,"nodeType":"FunctionDefinition","src":"1196:64:24","nodes":[],"functionSelector":"e5c042be","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate2","nameLocation":"1205:13:24","parameters":{"id":46809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1219:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46803,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1227:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46805,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46811,"src":"1235:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1235:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1218:32:24"},"returnParameters":{"id":46810,"nodeType":"ParameterList","parameters":[],"src":"1259:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46816,"nodeType":"FunctionDefinition","src":"1332:43:24","nodes":[],"functionSelector":"2de059ae","implemented":false,"kind":"function","modifiers":[],"name":"symbolicStorage","nameLocation":"1341:15:24","parameters":{"id":46814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46816,"src":"1357:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46812,"name":"address","nodeType":"ElementaryTypeName","src":"1357:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1356:9:24"},"returnParameters":{"id":46815,"nodeType":"ParameterList","parameters":[],"src":"1374:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46821,"nodeType":"FunctionDefinition","src":"1421:47:24","nodes":[],"functionSelector":"6e50e634","implemented":false,"kind":"function","modifiers":[],"name":"allowCallsToAddress","nameLocation":"1430:19:24","parameters":{"id":46819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46821,"src":"1450:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46817,"name":"address","nodeType":"ElementaryTypeName","src":"1450:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1449:9:24"},"returnParameters":{"id":46820,"nodeType":"ParameterList","parameters":[],"src":"1467:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46828,"nodeType":"FunctionDefinition","src":"1533:57:24","nodes":[],"functionSelector":"fac8170c","implemented":false,"kind":"function","modifiers":[],"name":"allowChangesToStorage","nameLocation":"1542:21:24","parameters":{"id":46826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46828,"src":"1564:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46822,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46828,"src":"1572:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1572:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1563:17:24"},"returnParameters":{"id":46827,"nodeType":"ParameterList","parameters":[],"src":"1589:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46831,"nodeType":"FunctionDefinition","src":"1647:32:24","nodes":[],"functionSelector":"ed9f7353","implemented":false,"kind":"function","modifiers":[],"name":"infiniteGas","nameLocation":"1656:11:24","parameters":{"id":46829,"nodeType":"ParameterList","parameters":[],"src":"1667:2:24"},"returnParameters":{"id":46830,"nodeType":"ParameterList","parameters":[],"src":"1678:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46836,"nodeType":"FunctionDefinition","src":"1743:34:24","nodes":[],"functionSelector":"dd51faa2","implemented":false,"kind":"function","modifiers":[],"name":"setGas","nameLocation":"1752:6:24","parameters":{"id":46834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46836,"src":"1759:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46832,"name":"uint256","nodeType":"ElementaryTypeName","src":"1759:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:9:24"},"returnParameters":{"id":46835,"nodeType":"ParameterList","parameters":[],"src":"1776:0:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46843,"nodeType":"FunctionDefinition","src":"1825:53:24","nodes":[],"functionSelector":"25449d64","implemented":false,"kind":"function","modifiers":[],"name":"freshUInt","nameLocation":"1834:9:24","parameters":{"id":46839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46843,"src":"1844:5:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46837,"name":"uint8","nodeType":"ElementaryTypeName","src":"1844:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1843:7:24"},"returnParameters":{"id":46842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46843,"src":"1869:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46840,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1868:9:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46848,"nodeType":"FunctionDefinition","src":"1923:48:24","nodes":[],"functionSelector":"aefb8969","implemented":false,"kind":"function","modifiers":[],"name":"freshBool","nameLocation":"1932:9:24","parameters":{"id":46844,"nodeType":"ParameterList","parameters":[],"src":"1941:2:24"},"returnParameters":{"id":46847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46848,"src":"1962:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:9:24"},"scope":46849,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"KontrolCheatsBase","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[46849],"name":"KontrolCheatsBase","nameLocation":"109:17:24","scope":46891,"usedErrors":[]},{"id":46890,"nodeType":"ContractDefinition","src":"1975:475:24","nodes":[{"id":46866,"nodeType":"VariableDeclaration","src":"2013:115:24","nodes":[],"constant":true,"functionSelector":"d6a2ec76","mutability":"constant","name":"kevm","nameLocation":"2047:4:24","scope":46890,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"},"typeName":{"id":46851,"nodeType":"UserDefinedTypeName","pathNode":{"id":46850,"name":"KontrolCheatsBase","nodeType":"IdentifierPath","referencedDeclaration":46849,"src":"2013:17:24"},"referencedDeclaration":46849,"src":"2013:17:24","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":46860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2106:17:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":46859,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2096:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":46858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2088:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46857,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:24","typeDescriptions":{}}},"id":46862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2088:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2080:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":46855,"name":"uint160","nodeType":"ElementaryTypeName","src":"2080:7:24","typeDescriptions":{}}},"id":46863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2080:46:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":46854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46853,"name":"address","nodeType":"ElementaryTypeName","src":"2072:7:24","typeDescriptions":{}}},"id":46864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46852,"name":"KontrolCheatsBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46849,"src":"2054:17:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KontrolCheatsBase_$46849_$","typeString":"type(contract KontrolCheatsBase)"}},"id":46865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2054:74:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$46849","typeString":"contract KontrolCheatsBase"}},"visibility":"public"},{"id":46889,"nodeType":"FunctionDefinition","src":"2202:246:24","nodes":[],"body":{"id":46888,"nodeType":"Block","src":"2272:176:24","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46873,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46868,"src":"2290:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"363435333236343734343236353437323033333133343130303639313533393035393038353235333632343334333439","id":46876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2306:48:24","typeDescriptions":{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"},"value":"645326474426547203313410069153905908525362434349"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"}],"id":46875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2298:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46874,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:24","typeDescriptions":{}}},"id":46877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2298:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2290:65:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46879,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46868,"src":"2375:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"373238383135353633333835393737303430343532393433373737383739303631343237373536323737333036353138","id":46882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:48:24","typeDescriptions":{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"},"value":"728815563385977040452943777879061427756277306518"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"}],"id":46881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2383:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46880,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:24","typeDescriptions":{}}},"id":46883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2375:65:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2290:150:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":46886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2289:152:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46872,"id":46887,"nodeType":"Return","src":"2282:159:24"}]},"implemented":true,"kind":"function","modifiers":[],"name":"notBuiltinAddress","nameLocation":"2211:17:24","parameters":{"id":46869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46868,"mutability":"mutable","name":"addr","nameLocation":"2237:4:24","nodeType":"VariableDeclaration","scope":46889,"src":"2229:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46867,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2228:14:24"},"returnParameters":{"id":46872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46889,"src":"2266:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46870,"name":"bool","nodeType":"ElementaryTypeName","src":"2266:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2265:6:24"},"scope":46890,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"KontrolCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46890],"name":"KontrolCheats","nameLocation":"1993:13:24","scope":46891,"usedErrors":[]}],"license":"MIT"},"id":24}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}
{"abi":[{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":207028,"exportedSymbols":{"IL1CrossDomainMessenger":[207027],"IL1ERC721Bridge":[207006],"IL1StandardBridge":[206973],"IOptimismPortal":[206910],"ISuperchainConfig":[206929],"Types":[108361]},"nodeType":"SourceUnit","src":"32:2157:319","nodes":[{"id":206877,"nodeType":"PragmaDirective","src":"32:23:319","nodes":[],"literals":["solidity","0.8",".15"]},{"id":206879,"nodeType":"ImportDirective","src":"57:48:319","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":207028,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":206878,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:319","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":206910,"nodeType":"ContractDefinition","src":"107:486:319","nodes":[{"id":206884,"nodeType":"FunctionDefinition","src":"139:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:319","parameters":{"id":206880,"nodeType":"ParameterList","parameters":[],"src":"156:2:319"},"returnParameters":{"id":206883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206884,"src":"182:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206881,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206889,"nodeType":"FunctionDefinition","src":"197:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:319","parameters":{"id":206885,"nodeType":"ParameterList","parameters":[],"src":"212:2:319"},"returnParameters":{"id":206888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206887,"mutability":"mutable","name":"paused_","nameLocation":"243:7:319","nodeType":"VariableDeclaration","scope":206889,"src":"238:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206886,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206903,"nodeType":"FunctionDefinition","src":"258:239:319","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:319","parameters":{"id":206901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206892,"mutability":"mutable","name":"_tx","nameLocation":"338:3:319","nodeType":"VariableDeclaration","scope":206903,"src":"303:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206891,"nodeType":"UserDefinedTypeName","pathNode":{"id":206890,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"303:27:319"},"referencedDeclaration":108360,"src":"303:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":206894,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:319","nodeType":"VariableDeclaration","scope":206903,"src":"351:22:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206893,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206897,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"383:47:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":206896,"nodeType":"UserDefinedTypeName","pathNode":{"id":206895,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"383:21:319"},"referencedDeclaration":108328,"src":"383:21:319","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":206900,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"440:33:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":206898,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":206899,"nodeType":"ArrayTypeName","src":"440:7:319","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:319"},"returnParameters":{"id":206902,"nodeType":"ParameterList","parameters":[],"src":"496:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206909,"nodeType":"FunctionDefinition","src":"503:88:319","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:319","parameters":{"id":206907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206906,"mutability":"mutable","name":"_tx","nameLocation":"577:3:319","nodeType":"VariableDeclaration","scope":206909,"src":"542:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206905,"nodeType":"UserDefinedTypeName","pathNode":{"id":206904,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"542:27:319"},"referencedDeclaration":108360,"src":"542:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:319"},"returnParameters":{"id":206908,"nodeType":"ParameterList","parameters":[],"src":"590:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206910],"name":"IOptimismPortal","nameLocation":"117:15:319","scope":207028,"usedErrors":[]},{"id":206929,"nodeType":"ContractDefinition","src":"595:240:319","nodes":[{"id":206915,"nodeType":"FunctionDefinition","src":"629:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:319","parameters":{"id":206911,"nodeType":"ParameterList","parameters":[],"src":"646:2:319"},"returnParameters":{"id":206914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206915,"src":"672:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206912,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206920,"nodeType":"FunctionDefinition","src":"687:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:319","parameters":{"id":206916,"nodeType":"ParameterList","parameters":[],"src":"702:2:319"},"returnParameters":{"id":206919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206918,"mutability":"mutable","name":"paused_","nameLocation":"733:7:319","nodeType":"VariableDeclaration","scope":206920,"src":"728:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206917,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206925,"nodeType":"FunctionDefinition","src":"748:51:319","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:319","parameters":{"id":206923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206922,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:319","nodeType":"VariableDeclaration","scope":206925,"src":"763:25:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":206921,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:319","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:319"},"returnParameters":{"id":206924,"nodeType":"ParameterList","parameters":[],"src":"798:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206928,"nodeType":"FunctionDefinition","src":"805:28:319","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:319","parameters":{"id":206926,"nodeType":"ParameterList","parameters":[],"src":"821:2:319"},"returnParameters":{"id":206927,"nodeType":"ParameterList","parameters":[],"src":"832:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206929],"name":"ISuperchainConfig","nameLocation":"605:17:319","scope":207028,"usedErrors":[]},{"id":206973,"nodeType":"ContractDefinition","src":"837:564:319","nodes":[{"id":206934,"nodeType":"FunctionDefinition","src":"871:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:319","parameters":{"id":206930,"nodeType":"ParameterList","parameters":[],"src":"886:2:319"},"returnParameters":{"id":206933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206934,"src":"912:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206931,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206940,"nodeType":"FunctionDefinition","src":"924:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:319","parameters":{"id":206935,"nodeType":"ParameterList","parameters":[],"src":"942:2:319"},"returnParameters":{"id":206939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206940,"src":"968:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206937,"nodeType":"UserDefinedTypeName","pathNode":{"id":206936,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"968:23:319"},"referencedDeclaration":207027,"src":"968:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206946,"nodeType":"FunctionDefinition","src":"999:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:319","parameters":{"id":206941,"nodeType":"ParameterList","parameters":[],"src":"1019:2:319"},"returnParameters":{"id":206945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206946,"src":"1045:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206943,"nodeType":"UserDefinedTypeName","pathNode":{"id":206942,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1045:17:319"},"referencedDeclaration":206973,"src":"1045:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206961,"nodeType":"FunctionDefinition","src":"1070:215:319","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:319","parameters":{"id":206959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206948,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:319","nodeType":"VariableDeclaration","scope":206961,"src":"1108:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206947,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206950,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:319","nodeType":"VariableDeclaration","scope":206961,"src":"1137:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206949,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206952,"mutability":"mutable","name":"_from","nameLocation":"1175:5:319","nodeType":"VariableDeclaration","scope":206961,"src":"1167:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206951,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206954,"mutability":"mutable","name":"_to","nameLocation":"1198:3:319","nodeType":"VariableDeclaration","scope":206961,"src":"1190:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206953,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206956,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:319","nodeType":"VariableDeclaration","scope":206961,"src":"1211:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206958,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:319","nodeType":"VariableDeclaration","scope":206961,"src":"1236:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206957,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:319"},"returnParameters":{"id":206960,"nodeType":"ParameterList","parameters":[],"src":"1284:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206972,"nodeType":"FunctionDefinition","src":"1291:108:319","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:319","parameters":{"id":206970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206963,"mutability":"mutable","name":"_from","nameLocation":"1326:5:319","nodeType":"VariableDeclaration","scope":206972,"src":"1318:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206962,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206965,"mutability":"mutable","name":"_to","nameLocation":"1341:3:319","nodeType":"VariableDeclaration","scope":206972,"src":"1333:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206964,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206967,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:319","nodeType":"VariableDeclaration","scope":206972,"src":"1346:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206969,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:319","nodeType":"VariableDeclaration","scope":206972,"src":"1363:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:319"},"returnParameters":{"id":206971,"nodeType":"ParameterList","parameters":[],"src":"1398:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206973],"name":"IL1StandardBridge","nameLocation":"847:17:319","scope":207028,"usedErrors":[]},{"id":207006,"nodeType":"ContractDefinition","src":"1403:449:319","nodes":[{"id":206978,"nodeType":"FunctionDefinition","src":"1435:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:319","parameters":{"id":206974,"nodeType":"ParameterList","parameters":[],"src":"1450:2:319"},"returnParameters":{"id":206977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206978,"src":"1476:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206975,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206984,"nodeType":"FunctionDefinition","src":"1488:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:319","parameters":{"id":206979,"nodeType":"ParameterList","parameters":[],"src":"1506:2:319"},"returnParameters":{"id":206983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206984,"src":"1532:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206981,"nodeType":"UserDefinedTypeName","pathNode":{"id":206980,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"1532:23:319"},"referencedDeclaration":207027,"src":"1532:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206990,"nodeType":"FunctionDefinition","src":"1563:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:319","parameters":{"id":206985,"nodeType":"ParameterList","parameters":[],"src":"1583:2:319"},"returnParameters":{"id":206989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206990,"src":"1609:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206987,"nodeType":"UserDefinedTypeName","pathNode":{"id":206986,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1609:17:319"},"referencedDeclaration":206973,"src":"1609:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":207005,"nodeType":"FunctionDefinition","src":"1634:216:319","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:319","parameters":{"id":207003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206992,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:319","nodeType":"VariableDeclaration","scope":207005,"src":"1673:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206991,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206994,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:319","nodeType":"VariableDeclaration","scope":207005,"src":"1702:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206993,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206996,"mutability":"mutable","name":"_from","nameLocation":"1740:5:319","nodeType":"VariableDeclaration","scope":207005,"src":"1732:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206995,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206998,"mutability":"mutable","name":"_to","nameLocation":"1763:3:319","nodeType":"VariableDeclaration","scope":207005,"src":"1755:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206997,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207000,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:319","nodeType":"VariableDeclaration","scope":207005,"src":"1776:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207002,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:319","nodeType":"VariableDeclaration","scope":207005,"src":"1801:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:319"},"returnParameters":{"id":207004,"nodeType":"ParameterList","parameters":[],"src":"1849:0:319"},"scope":207006,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207006],"name":"IL1ERC721Bridge","nameLocation":"1413:15:319","scope":207028,"usedErrors":[]},{"id":207027,"nodeType":"ContractDefinition","src":"1854:334:319","nodes":[{"id":207021,"nodeType":"FunctionDefinition","src":"1894:222:319","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:319","parameters":{"id":207019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207008,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1925:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207010,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1949:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207009,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207012,"mutability":"mutable","name":"_target","nameLocation":"1982:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1974:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207011,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207014,"mutability":"mutable","name":"_value","nameLocation":"2007:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1999:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207016,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:319","nodeType":"VariableDeclaration","scope":207021,"src":"2023:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207018,"mutability":"mutable","name":"_message","nameLocation":"2068:8:319","nodeType":"VariableDeclaration","scope":207021,"src":"2053:23:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207017,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:319"},"returnParameters":{"id":207020,"nodeType":"ParameterList","parameters":[],"src":"2115:0:319"},"scope":207027,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":207026,"nodeType":"FunctionDefinition","src":"2122:64:319","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:319","parameters":{"id":207022,"nodeType":"ParameterList","parameters":[],"src":"2151:2:319"},"returnParameters":{"id":207025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":207026,"src":"2177:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207023,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:319"},"scope":207027,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207027],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:319","scope":207028,"usedErrors":[]}],"license":"MIT"},"id":319}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}
{"abi":[{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":207028,"exportedSymbols":{"IL1CrossDomainMessenger":[207027],"IL1ERC721Bridge":[207006],"IL1StandardBridge":[206973],"IOptimismPortal":[206910],"ISuperchainConfig":[206929],"Types":[108361]},"nodeType":"SourceUnit","src":"32:2157:319","nodes":[{"id":206877,"nodeType":"PragmaDirective","src":"32:23:319","nodes":[],"literals":["solidity","0.8",".15"]},{"id":206879,"nodeType":"ImportDirective","src":"57:48:319","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":207028,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":206878,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:319","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":206910,"nodeType":"ContractDefinition","src":"107:486:319","nodes":[{"id":206884,"nodeType":"FunctionDefinition","src":"139:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:319","parameters":{"id":206880,"nodeType":"ParameterList","parameters":[],"src":"156:2:319"},"returnParameters":{"id":206883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206884,"src":"182:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206881,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206889,"nodeType":"FunctionDefinition","src":"197:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:319","parameters":{"id":206885,"nodeType":"ParameterList","parameters":[],"src":"212:2:319"},"returnParameters":{"id":206888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206887,"mutability":"mutable","name":"paused_","nameLocation":"243:7:319","nodeType":"VariableDeclaration","scope":206889,"src":"238:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206886,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206903,"nodeType":"FunctionDefinition","src":"258:239:319","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:319","parameters":{"id":206901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206892,"mutability":"mutable","name":"_tx","nameLocation":"338:3:319","nodeType":"VariableDeclaration","scope":206903,"src":"303:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206891,"nodeType":"UserDefinedTypeName","pathNode":{"id":206890,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"303:27:319"},"referencedDeclaration":108360,"src":"303:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":206894,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:319","nodeType":"VariableDeclaration","scope":206903,"src":"351:22:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206893,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206897,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"383:47:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":206896,"nodeType":"UserDefinedTypeName","pathNode":{"id":206895,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"383:21:319"},"referencedDeclaration":108328,"src":"383:21:319","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":206900,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"440:33:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":206898,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":206899,"nodeType":"ArrayTypeName","src":"440:7:319","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:319"},"returnParameters":{"id":206902,"nodeType":"ParameterList","parameters":[],"src":"496:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206909,"nodeType":"FunctionDefinition","src":"503:88:319","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:319","parameters":{"id":206907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206906,"mutability":"mutable","name":"_tx","nameLocation":"577:3:319","nodeType":"VariableDeclaration","scope":206909,"src":"542:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206905,"nodeType":"UserDefinedTypeName","pathNode":{"id":206904,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"542:27:319"},"referencedDeclaration":108360,"src":"542:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:319"},"returnParameters":{"id":206908,"nodeType":"ParameterList","parameters":[],"src":"590:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206910],"name":"IOptimismPortal","nameLocation":"117:15:319","scope":207028,"usedErrors":[]},{"id":206929,"nodeType":"ContractDefinition","src":"595:240:319","nodes":[{"id":206915,"nodeType":"FunctionDefinition","src":"629:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:319","parameters":{"id":206911,"nodeType":"ParameterList","parameters":[],"src":"646:2:319"},"returnParameters":{"id":206914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206915,"src":"672:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206912,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206920,"nodeType":"FunctionDefinition","src":"687:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:319","parameters":{"id":206916,"nodeType":"ParameterList","parameters":[],"src":"702:2:319"},"returnParameters":{"id":206919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206918,"mutability":"mutable","name":"paused_","nameLocation":"733:7:319","nodeType":"VariableDeclaration","scope":206920,"src":"728:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206917,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206925,"nodeType":"FunctionDefinition","src":"748:51:319","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:319","parameters":{"id":206923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206922,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:319","nodeType":"VariableDeclaration","scope":206925,"src":"763:25:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":206921,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:319","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:319"},"returnParameters":{"id":206924,"nodeType":"ParameterList","parameters":[],"src":"798:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206928,"nodeType":"FunctionDefinition","src":"805:28:319","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:319","parameters":{"id":206926,"nodeType":"ParameterList","parameters":[],"src":"821:2:319"},"returnParameters":{"id":206927,"nodeType":"ParameterList","parameters":[],"src":"832:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206929],"name":"ISuperchainConfig","nameLocation":"605:17:319","scope":207028,"usedErrors":[]},{"id":206973,"nodeType":"ContractDefinition","src":"837:564:319","nodes":[{"id":206934,"nodeType":"FunctionDefinition","src":"871:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:319","parameters":{"id":206930,"nodeType":"ParameterList","parameters":[],"src":"886:2:319"},"returnParameters":{"id":206933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206934,"src":"912:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206931,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206940,"nodeType":"FunctionDefinition","src":"924:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:319","parameters":{"id":206935,"nodeType":"ParameterList","parameters":[],"src":"942:2:319"},"returnParameters":{"id":206939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206940,"src":"968:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206937,"nodeType":"UserDefinedTypeName","pathNode":{"id":206936,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"968:23:319"},"referencedDeclaration":207027,"src":"968:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206946,"nodeType":"FunctionDefinition","src":"999:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:319","parameters":{"id":206941,"nodeType":"ParameterList","parameters":[],"src":"1019:2:319"},"returnParameters":{"id":206945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206946,"src":"1045:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206943,"nodeType":"UserDefinedTypeName","pathNode":{"id":206942,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1045:17:319"},"referencedDeclaration":206973,"src":"1045:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206961,"nodeType":"FunctionDefinition","src":"1070:215:319","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:319","parameters":{"id":206959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206948,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:319","nodeType":"VariableDeclaration","scope":206961,"src":"1108:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206947,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206950,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:319","nodeType":"VariableDeclaration","scope":206961,"src":"1137:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206949,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206952,"mutability":"mutable","name":"_from","nameLocation":"1175:5:319","nodeType":"VariableDeclaration","scope":206961,"src":"1167:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206951,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206954,"mutability":"mutable","name":"_to","nameLocation":"1198:3:319","nodeType":"VariableDeclaration","scope":206961,"src":"1190:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206953,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206956,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:319","nodeType":"VariableDeclaration","scope":206961,"src":"1211:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206958,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:319","nodeType":"VariableDeclaration","scope":206961,"src":"1236:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206957,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:319"},"returnParameters":{"id":206960,"nodeType":"ParameterList","parameters":[],"src":"1284:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206972,"nodeType":"FunctionDefinition","src":"1291:108:319","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:319","parameters":{"id":206970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206963,"mutability":"mutable","name":"_from","nameLocation":"1326:5:319","nodeType":"VariableDeclaration","scope":206972,"src":"1318:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206962,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206965,"mutability":"mutable","name":"_to","nameLocation":"1341:3:319","nodeType":"VariableDeclaration","scope":206972,"src":"1333:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206964,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206967,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:319","nodeType":"VariableDeclaration","scope":206972,"src":"1346:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206969,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:319","nodeType":"VariableDeclaration","scope":206972,"src":"1363:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:319"},"returnParameters":{"id":206971,"nodeType":"ParameterList","parameters":[],"src":"1398:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206973],"name":"IL1StandardBridge","nameLocation":"847:17:319","scope":207028,"usedErrors":[]},{"id":207006,"nodeType":"ContractDefinition","src":"1403:449:319","nodes":[{"id":206978,"nodeType":"FunctionDefinition","src":"1435:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:319","parameters":{"id":206974,"nodeType":"ParameterList","parameters":[],"src":"1450:2:319"},"returnParameters":{"id":206977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206978,"src":"1476:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206975,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206984,"nodeType":"FunctionDefinition","src":"1488:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:319","parameters":{"id":206979,"nodeType":"ParameterList","parameters":[],"src":"1506:2:319"},"returnParameters":{"id":206983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206984,"src":"1532:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206981,"nodeType":"UserDefinedTypeName","pathNode":{"id":206980,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"1532:23:319"},"referencedDeclaration":207027,"src":"1532:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206990,"nodeType":"FunctionDefinition","src":"1563:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:319","parameters":{"id":206985,"nodeType":"ParameterList","parameters":[],"src":"1583:2:319"},"returnParameters":{"id":206989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206990,"src":"1609:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206987,"nodeType":"UserDefinedTypeName","pathNode":{"id":206986,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1609:17:319"},"referencedDeclaration":206973,"src":"1609:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":207005,"nodeType":"FunctionDefinition","src":"1634:216:319","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:319","parameters":{"id":207003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206992,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:319","nodeType":"VariableDeclaration","scope":207005,"src":"1673:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206991,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206994,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:319","nodeType":"VariableDeclaration","scope":207005,"src":"1702:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206993,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206996,"mutability":"mutable","name":"_from","nameLocation":"1740:5:319","nodeType":"VariableDeclaration","scope":207005,"src":"1732:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206995,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206998,"mutability":"mutable","name":"_to","nameLocation":"1763:3:319","nodeType":"VariableDeclaration","scope":207005,"src":"1755:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206997,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207000,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:319","nodeType":"VariableDeclaration","scope":207005,"src":"1776:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207002,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:319","nodeType":"VariableDeclaration","scope":207005,"src":"1801:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:319"},"returnParameters":{"id":207004,"nodeType":"ParameterList","parameters":[],"src":"1849:0:319"},"scope":207006,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207006],"name":"IL1ERC721Bridge","nameLocation":"1413:15:319","scope":207028,"usedErrors":[]},{"id":207027,"nodeType":"ContractDefinition","src":"1854:334:319","nodes":[{"id":207021,"nodeType":"FunctionDefinition","src":"1894:222:319","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:319","parameters":{"id":207019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207008,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1925:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207010,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1949:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207009,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207012,"mutability":"mutable","name":"_target","nameLocation":"1982:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1974:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207011,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207014,"mutability":"mutable","name":"_value","nameLocation":"2007:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1999:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207016,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:319","nodeType":"VariableDeclaration","scope":207021,"src":"2023:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207018,"mutability":"mutable","name":"_message","nameLocation":"2068:8:319","nodeType":"VariableDeclaration","scope":207021,"src":"2053:23:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207017,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:319"},"returnParameters":{"id":207020,"nodeType":"ParameterList","parameters":[],"src":"2115:0:319"},"scope":207027,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":207026,"nodeType":"FunctionDefinition","src":"2122:64:319","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:319","parameters":{"id":207022,"nodeType":"ParameterList","parameters":[],"src":"2151:2:319"},"returnParameters":{"id":207025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":207026,"src":"2177:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207023,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:319"},"scope":207027,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207027],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:319","scope":207028,"usedErrors":[]}],"license":"MIT"},"id":319}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeETH"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}
{"abi":[{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeETH"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":207028,"exportedSymbols":{"IL1CrossDomainMessenger":[207027],"IL1ERC721Bridge":[207006],"IL1StandardBridge":[206973],"IOptimismPortal":[206910],"ISuperchainConfig":[206929],"Types":[108361]},"nodeType":"SourceUnit","src":"32:2157:319","nodes":[{"id":206877,"nodeType":"PragmaDirective","src":"32:23:319","nodes":[],"literals":["solidity","0.8",".15"]},{"id":206879,"nodeType":"ImportDirective","src":"57:48:319","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":207028,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":206878,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:319","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":206910,"nodeType":"ContractDefinition","src":"107:486:319","nodes":[{"id":206884,"nodeType":"FunctionDefinition","src":"139:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:319","parameters":{"id":206880,"nodeType":"ParameterList","parameters":[],"src":"156:2:319"},"returnParameters":{"id":206883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206884,"src":"182:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206881,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206889,"nodeType":"FunctionDefinition","src":"197:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:319","parameters":{"id":206885,"nodeType":"ParameterList","parameters":[],"src":"212:2:319"},"returnParameters":{"id":206888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206887,"mutability":"mutable","name":"paused_","nameLocation":"243:7:319","nodeType":"VariableDeclaration","scope":206889,"src":"238:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206886,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206903,"nodeType":"FunctionDefinition","src":"258:239:319","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:319","parameters":{"id":206901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206892,"mutability":"mutable","name":"_tx","nameLocation":"338:3:319","nodeType":"VariableDeclaration","scope":206903,"src":"303:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206891,"nodeType":"UserDefinedTypeName","pathNode":{"id":206890,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"303:27:319"},"referencedDeclaration":108360,"src":"303:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":206894,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:319","nodeType":"VariableDeclaration","scope":206903,"src":"351:22:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206893,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206897,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"383:47:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":206896,"nodeType":"UserDefinedTypeName","pathNode":{"id":206895,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"383:21:319"},"referencedDeclaration":108328,"src":"383:21:319","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":206900,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"440:33:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":206898,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":206899,"nodeType":"ArrayTypeName","src":"440:7:319","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:319"},"returnParameters":{"id":206902,"nodeType":"ParameterList","parameters":[],"src":"496:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206909,"nodeType":"FunctionDefinition","src":"503:88:319","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:319","parameters":{"id":206907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206906,"mutability":"mutable","name":"_tx","nameLocation":"577:3:319","nodeType":"VariableDeclaration","scope":206909,"src":"542:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206905,"nodeType":"UserDefinedTypeName","pathNode":{"id":206904,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"542:27:319"},"referencedDeclaration":108360,"src":"542:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:319"},"returnParameters":{"id":206908,"nodeType":"ParameterList","parameters":[],"src":"590:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206910],"name":"IOptimismPortal","nameLocation":"117:15:319","scope":207028,"usedErrors":[]},{"id":206929,"nodeType":"ContractDefinition","src":"595:240:319","nodes":[{"id":206915,"nodeType":"FunctionDefinition","src":"629:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:319","parameters":{"id":206911,"nodeType":"ParameterList","parameters":[],"src":"646:2:319"},"returnParameters":{"id":206914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206915,"src":"672:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206912,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206920,"nodeType":"FunctionDefinition","src":"687:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:319","parameters":{"id":206916,"nodeType":"ParameterList","parameters":[],"src":"702:2:319"},"returnParameters":{"id":206919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206918,"mutability":"mutable","name":"paused_","nameLocation":"733:7:319","nodeType":"VariableDeclaration","scope":206920,"src":"728:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206917,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206925,"nodeType":"FunctionDefinition","src":"748:51:319","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:319","parameters":{"id":206923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206922,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:319","nodeType":"VariableDeclaration","scope":206925,"src":"763:25:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":206921,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:319","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:319"},"returnParameters":{"id":206924,"nodeType":"ParameterList","parameters":[],"src":"798:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206928,"nodeType":"FunctionDefinition","src":"805:28:319","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:319","parameters":{"id":206926,"nodeType":"ParameterList","parameters":[],"src":"821:2:319"},"returnParameters":{"id":206927,"nodeType":"ParameterList","parameters":[],"src":"832:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206929],"name":"ISuperchainConfig","nameLocation":"605:17:319","scope":207028,"usedErrors":[]},{"id":206973,"nodeType":"ContractDefinition","src":"837:564:319","nodes":[{"id":206934,"nodeType":"FunctionDefinition","src":"871:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:319","parameters":{"id":206930,"nodeType":"ParameterList","parameters":[],"src":"886:2:319"},"returnParameters":{"id":206933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206934,"src":"912:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206931,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206940,"nodeType":"FunctionDefinition","src":"924:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:319","parameters":{"id":206935,"nodeType":"ParameterList","parameters":[],"src":"942:2:319"},"returnParameters":{"id":206939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206940,"src":"968:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206937,"nodeType":"UserDefinedTypeName","pathNode":{"id":206936,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"968:23:319"},"referencedDeclaration":207027,"src":"968:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206946,"nodeType":"FunctionDefinition","src":"999:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:319","parameters":{"id":206941,"nodeType":"ParameterList","parameters":[],"src":"1019:2:319"},"returnParameters":{"id":206945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206946,"src":"1045:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206943,"nodeType":"UserDefinedTypeName","pathNode":{"id":206942,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1045:17:319"},"referencedDeclaration":206973,"src":"1045:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206961,"nodeType":"FunctionDefinition","src":"1070:215:319","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:319","parameters":{"id":206959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206948,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:319","nodeType":"VariableDeclaration","scope":206961,"src":"1108:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206947,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206950,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:319","nodeType":"VariableDeclaration","scope":206961,"src":"1137:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206949,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206952,"mutability":"mutable","name":"_from","nameLocation":"1175:5:319","nodeType":"VariableDeclaration","scope":206961,"src":"1167:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206951,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206954,"mutability":"mutable","name":"_to","nameLocation":"1198:3:319","nodeType":"VariableDeclaration","scope":206961,"src":"1190:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206953,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206956,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:319","nodeType":"VariableDeclaration","scope":206961,"src":"1211:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206958,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:319","nodeType":"VariableDeclaration","scope":206961,"src":"1236:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206957,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:319"},"returnParameters":{"id":206960,"nodeType":"ParameterList","parameters":[],"src":"1284:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206972,"nodeType":"FunctionDefinition","src":"1291:108:319","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:319","parameters":{"id":206970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206963,"mutability":"mutable","name":"_from","nameLocation":"1326:5:319","nodeType":"VariableDeclaration","scope":206972,"src":"1318:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206962,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206965,"mutability":"mutable","name":"_to","nameLocation":"1341:3:319","nodeType":"VariableDeclaration","scope":206972,"src":"1333:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206964,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206967,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:319","nodeType":"VariableDeclaration","scope":206972,"src":"1346:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206969,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:319","nodeType":"VariableDeclaration","scope":206972,"src":"1363:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:319"},"returnParameters":{"id":206971,"nodeType":"ParameterList","parameters":[],"src":"1398:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206973],"name":"IL1StandardBridge","nameLocation":"847:17:319","scope":207028,"usedErrors":[]},{"id":207006,"nodeType":"ContractDefinition","src":"1403:449:319","nodes":[{"id":206978,"nodeType":"FunctionDefinition","src":"1435:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:319","parameters":{"id":206974,"nodeType":"ParameterList","parameters":[],"src":"1450:2:319"},"returnParameters":{"id":206977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206978,"src":"1476:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206975,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206984,"nodeType":"FunctionDefinition","src":"1488:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:319","parameters":{"id":206979,"nodeType":"ParameterList","parameters":[],"src":"1506:2:319"},"returnParameters":{"id":206983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206984,"src":"1532:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206981,"nodeType":"UserDefinedTypeName","pathNode":{"id":206980,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"1532:23:319"},"referencedDeclaration":207027,"src":"1532:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206990,"nodeType":"FunctionDefinition","src":"1563:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:319","parameters":{"id":206985,"nodeType":"ParameterList","parameters":[],"src":"1583:2:319"},"returnParameters":{"id":206989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206990,"src":"1609:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206987,"nodeType":"UserDefinedTypeName","pathNode":{"id":206986,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1609:17:319"},"referencedDeclaration":206973,"src":"1609:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":207005,"nodeType":"FunctionDefinition","src":"1634:216:319","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:319","parameters":{"id":207003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206992,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:319","nodeType":"VariableDeclaration","scope":207005,"src":"1673:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206991,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206994,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:319","nodeType":"VariableDeclaration","scope":207005,"src":"1702:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206993,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206996,"mutability":"mutable","name":"_from","nameLocation":"1740:5:319","nodeType":"VariableDeclaration","scope":207005,"src":"1732:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206995,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206998,"mutability":"mutable","name":"_to","nameLocation":"1763:3:319","nodeType":"VariableDeclaration","scope":207005,"src":"1755:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206997,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207000,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:319","nodeType":"VariableDeclaration","scope":207005,"src":"1776:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207002,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:319","nodeType":"VariableDeclaration","scope":207005,"src":"1801:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:319"},"returnParameters":{"id":207004,"nodeType":"ParameterList","parameters":[],"src":"1849:0:319"},"scope":207006,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207006],"name":"IL1ERC721Bridge","nameLocation":"1413:15:319","scope":207028,"usedErrors":[]},{"id":207027,"nodeType":"ContractDefinition","src":"1854:334:319","nodes":[{"id":207021,"nodeType":"FunctionDefinition","src":"1894:222:319","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:319","parameters":{"id":207019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207008,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1925:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207010,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1949:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207009,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207012,"mutability":"mutable","name":"_target","nameLocation":"1982:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1974:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207011,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207014,"mutability":"mutable","name":"_value","nameLocation":"2007:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1999:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207016,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:319","nodeType":"VariableDeclaration","scope":207021,"src":"2023:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207018,"mutability":"mutable","name":"_message","nameLocation":"2068:8:319","nodeType":"VariableDeclaration","scope":207021,"src":"2053:23:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207017,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:319"},"returnParameters":{"id":207020,"nodeType":"ParameterList","parameters":[],"src":"2115:0:319"},"scope":207027,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":207026,"nodeType":"FunctionDefinition","src":"2122:64:319","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:319","parameters":{"id":207022,"nodeType":"ParameterList","parameters":[],"src":"2151:2:319"},"returnParameters":{"id":207025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":207026,"src":"2177:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207023,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:319"},"scope":207027,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207027],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:319","scope":207028,"usedErrors":[]}],"license":"MIT"},"id":319}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","guardian()":"452a9320","paused()":"5c975abb","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IOptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IOptimismPortal"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}
{"abi":[{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","guardian()":"452a9320","paused()":"5c975abb","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IOptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IOptimismPortal"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":207028,"exportedSymbols":{"IL1CrossDomainMessenger":[207027],"IL1ERC721Bridge":[207006],"IL1StandardBridge":[206973],"IOptimismPortal":[206910],"ISuperchainConfig":[206929],"Types":[108361]},"nodeType":"SourceUnit","src":"32:2157:319","nodes":[{"id":206877,"nodeType":"PragmaDirective","src":"32:23:319","nodes":[],"literals":["solidity","0.8",".15"]},{"id":206879,"nodeType":"ImportDirective","src":"57:48:319","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":207028,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":206878,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:319","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":206910,"nodeType":"ContractDefinition","src":"107:486:319","nodes":[{"id":206884,"nodeType":"FunctionDefinition","src":"139:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:319","parameters":{"id":206880,"nodeType":"ParameterList","parameters":[],"src":"156:2:319"},"returnParameters":{"id":206883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206884,"src":"182:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206881,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206889,"nodeType":"FunctionDefinition","src":"197:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:319","parameters":{"id":206885,"nodeType":"ParameterList","parameters":[],"src":"212:2:319"},"returnParameters":{"id":206888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206887,"mutability":"mutable","name":"paused_","nameLocation":"243:7:319","nodeType":"VariableDeclaration","scope":206889,"src":"238:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206886,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206903,"nodeType":"FunctionDefinition","src":"258:239:319","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:319","parameters":{"id":206901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206892,"mutability":"mutable","name":"_tx","nameLocation":"338:3:319","nodeType":"VariableDeclaration","scope":206903,"src":"303:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206891,"nodeType":"UserDefinedTypeName","pathNode":{"id":206890,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"303:27:319"},"referencedDeclaration":108360,"src":"303:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":206894,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:319","nodeType":"VariableDeclaration","scope":206903,"src":"351:22:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206893,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206897,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"383:47:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":206896,"nodeType":"UserDefinedTypeName","pathNode":{"id":206895,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"383:21:319"},"referencedDeclaration":108328,"src":"383:21:319","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":206900,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"440:33:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":206898,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":206899,"nodeType":"ArrayTypeName","src":"440:7:319","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:319"},"returnParameters":{"id":206902,"nodeType":"ParameterList","parameters":[],"src":"496:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206909,"nodeType":"FunctionDefinition","src":"503:88:319","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:319","parameters":{"id":206907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206906,"mutability":"mutable","name":"_tx","nameLocation":"577:3:319","nodeType":"VariableDeclaration","scope":206909,"src":"542:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206905,"nodeType":"UserDefinedTypeName","pathNode":{"id":206904,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"542:27:319"},"referencedDeclaration":108360,"src":"542:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:319"},"returnParameters":{"id":206908,"nodeType":"ParameterList","parameters":[],"src":"590:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206910],"name":"IOptimismPortal","nameLocation":"117:15:319","scope":207028,"usedErrors":[]},{"id":206929,"nodeType":"ContractDefinition","src":"595:240:319","nodes":[{"id":206915,"nodeType":"FunctionDefinition","src":"629:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:319","parameters":{"id":206911,"nodeType":"ParameterList","parameters":[],"src":"646:2:319"},"returnParameters":{"id":206914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206915,"src":"672:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206912,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206920,"nodeType":"FunctionDefinition","src":"687:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:319","parameters":{"id":206916,"nodeType":"ParameterList","parameters":[],"src":"702:2:319"},"returnParameters":{"id":206919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206918,"mutability":"mutable","name":"paused_","nameLocation":"733:7:319","nodeType":"VariableDeclaration","scope":206920,"src":"728:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206917,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206925,"nodeType":"FunctionDefinition","src":"748:51:319","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:319","parameters":{"id":206923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206922,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:319","nodeType":"VariableDeclaration","scope":206925,"src":"763:25:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":206921,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:319","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:319"},"returnParameters":{"id":206924,"nodeType":"ParameterList","parameters":[],"src":"798:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206928,"nodeType":"FunctionDefinition","src":"805:28:319","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:319","parameters":{"id":206926,"nodeType":"ParameterList","parameters":[],"src":"821:2:319"},"returnParameters":{"id":206927,"nodeType":"ParameterList","parameters":[],"src":"832:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206929],"name":"ISuperchainConfig","nameLocation":"605:17:319","scope":207028,"usedErrors":[]},{"id":206973,"nodeType":"ContractDefinition","src":"837:564:319","nodes":[{"id":206934,"nodeType":"FunctionDefinition","src":"871:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:319","parameters":{"id":206930,"nodeType":"ParameterList","parameters":[],"src":"886:2:319"},"returnParameters":{"id":206933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206934,"src":"912:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206931,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206940,"nodeType":"FunctionDefinition","src":"924:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:319","parameters":{"id":206935,"nodeType":"ParameterList","parameters":[],"src":"942:2:319"},"returnParameters":{"id":206939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206940,"src":"968:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206937,"nodeType":"UserDefinedTypeName","pathNode":{"id":206936,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"968:23:319"},"referencedDeclaration":207027,"src":"968:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206946,"nodeType":"FunctionDefinition","src":"999:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:319","parameters":{"id":206941,"nodeType":"ParameterList","parameters":[],"src":"1019:2:319"},"returnParameters":{"id":206945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206946,"src":"1045:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206943,"nodeType":"UserDefinedTypeName","pathNode":{"id":206942,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1045:17:319"},"referencedDeclaration":206973,"src":"1045:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206961,"nodeType":"FunctionDefinition","src":"1070:215:319","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:319","parameters":{"id":206959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206948,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:319","nodeType":"VariableDeclaration","scope":206961,"src":"1108:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206947,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206950,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:319","nodeType":"VariableDeclaration","scope":206961,"src":"1137:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206949,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206952,"mutability":"mutable","name":"_from","nameLocation":"1175:5:319","nodeType":"VariableDeclaration","scope":206961,"src":"1167:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206951,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206954,"mutability":"mutable","name":"_to","nameLocation":"1198:3:319","nodeType":"VariableDeclaration","scope":206961,"src":"1190:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206953,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206956,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:319","nodeType":"VariableDeclaration","scope":206961,"src":"1211:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206958,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:319","nodeType":"VariableDeclaration","scope":206961,"src":"1236:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206957,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:319"},"returnParameters":{"id":206960,"nodeType":"ParameterList","parameters":[],"src":"1284:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206972,"nodeType":"FunctionDefinition","src":"1291:108:319","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:319","parameters":{"id":206970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206963,"mutability":"mutable","name":"_from","nameLocation":"1326:5:319","nodeType":"VariableDeclaration","scope":206972,"src":"1318:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206962,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206965,"mutability":"mutable","name":"_to","nameLocation":"1341:3:319","nodeType":"VariableDeclaration","scope":206972,"src":"1333:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206964,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206967,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:319","nodeType":"VariableDeclaration","scope":206972,"src":"1346:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206969,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:319","nodeType":"VariableDeclaration","scope":206972,"src":"1363:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:319"},"returnParameters":{"id":206971,"nodeType":"ParameterList","parameters":[],"src":"1398:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206973],"name":"IL1StandardBridge","nameLocation":"847:17:319","scope":207028,"usedErrors":[]},{"id":207006,"nodeType":"ContractDefinition","src":"1403:449:319","nodes":[{"id":206978,"nodeType":"FunctionDefinition","src":"1435:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:319","parameters":{"id":206974,"nodeType":"ParameterList","parameters":[],"src":"1450:2:319"},"returnParameters":{"id":206977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206978,"src":"1476:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206975,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206984,"nodeType":"FunctionDefinition","src":"1488:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:319","parameters":{"id":206979,"nodeType":"ParameterList","parameters":[],"src":"1506:2:319"},"returnParameters":{"id":206983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206984,"src":"1532:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206981,"nodeType":"UserDefinedTypeName","pathNode":{"id":206980,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"1532:23:319"},"referencedDeclaration":207027,"src":"1532:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206990,"nodeType":"FunctionDefinition","src":"1563:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:319","parameters":{"id":206985,"nodeType":"ParameterList","parameters":[],"src":"1583:2:319"},"returnParameters":{"id":206989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206990,"src":"1609:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206987,"nodeType":"UserDefinedTypeName","pathNode":{"id":206986,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1609:17:319"},"referencedDeclaration":206973,"src":"1609:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":207005,"nodeType":"FunctionDefinition","src":"1634:216:319","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:319","parameters":{"id":207003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206992,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:319","nodeType":"VariableDeclaration","scope":207005,"src":"1673:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206991,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206994,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:319","nodeType":"VariableDeclaration","scope":207005,"src":"1702:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206993,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206996,"mutability":"mutable","name":"_from","nameLocation":"1740:5:319","nodeType":"VariableDeclaration","scope":207005,"src":"1732:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206995,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206998,"mutability":"mutable","name":"_to","nameLocation":"1763:3:319","nodeType":"VariableDeclaration","scope":207005,"src":"1755:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206997,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207000,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:319","nodeType":"VariableDeclaration","scope":207005,"src":"1776:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207002,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:319","nodeType":"VariableDeclaration","scope":207005,"src":"1801:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:319"},"returnParameters":{"id":207004,"nodeType":"ParameterList","parameters":[],"src":"1849:0:319"},"scope":207006,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207006],"name":"IL1ERC721Bridge","nameLocation":"1413:15:319","scope":207028,"usedErrors":[]},{"id":207027,"nodeType":"ContractDefinition","src":"1854:334:319","nodes":[{"id":207021,"nodeType":"FunctionDefinition","src":"1894:222:319","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:319","parameters":{"id":207019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207008,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1925:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207010,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1949:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207009,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207012,"mutability":"mutable","name":"_target","nameLocation":"1982:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1974:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207011,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207014,"mutability":"mutable","name":"_value","nameLocation":"2007:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1999:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207016,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:319","nodeType":"VariableDeclaration","scope":207021,"src":"2023:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207018,"mutability":"mutable","name":"_message","nameLocation":"2068:8:319","nodeType":"VariableDeclaration","scope":207021,"src":"2053:23:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207017,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:319"},"returnParameters":{"id":207020,"nodeType":"ParameterList","parameters":[],"src":"2115:0:319"},"scope":207027,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":207026,"nodeType":"FunctionDefinition","src":"2122:64:319","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:319","parameters":{"id":207022,"nodeType":"ParameterList","parameters":[],"src":"2151:2:319"},"returnParameters":{"id":207025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":207026,"src":"2177:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207023,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:319"},"scope":207027,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207027],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:319","scope":207028,"usedErrors":[]}],"license":"MIT"},"id":319}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"_identifier","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"guardian()":"452a9320","pause(string)":"6da66355","paused()":"5c975abb","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_identifier\",\"type\":\"string\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"ISuperchainConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_identifier","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"ISuperchainConfig"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}
{"abi":[{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"_identifier","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"guardian()":"452a9320","pause(string)":"6da66355","paused()":"5c975abb","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_identifier\",\"type\":\"string\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"ISuperchainConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_identifier","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"ISuperchainConfig"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":207028,"exportedSymbols":{"IL1CrossDomainMessenger":[207027],"IL1ERC721Bridge":[207006],"IL1StandardBridge":[206973],"IOptimismPortal":[206910],"ISuperchainConfig":[206929],"Types":[108361]},"nodeType":"SourceUnit","src":"32:2157:319","nodes":[{"id":206877,"nodeType":"PragmaDirective","src":"32:23:319","nodes":[],"literals":["solidity","0.8",".15"]},{"id":206879,"nodeType":"ImportDirective","src":"57:48:319","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":207028,"sourceUnit":108362,"symbolAliases":[{"foreign":{"id":206878,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108361,"src":"66:5:319","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":206910,"nodeType":"ContractDefinition","src":"107:486:319","nodes":[{"id":206884,"nodeType":"FunctionDefinition","src":"139:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:319","parameters":{"id":206880,"nodeType":"ParameterList","parameters":[],"src":"156:2:319"},"returnParameters":{"id":206883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206884,"src":"182:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206881,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206889,"nodeType":"FunctionDefinition","src":"197:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:319","parameters":{"id":206885,"nodeType":"ParameterList","parameters":[],"src":"212:2:319"},"returnParameters":{"id":206888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206887,"mutability":"mutable","name":"paused_","nameLocation":"243:7:319","nodeType":"VariableDeclaration","scope":206889,"src":"238:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206886,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:319"},"scope":206910,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206903,"nodeType":"FunctionDefinition","src":"258:239:319","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:319","parameters":{"id":206901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206892,"mutability":"mutable","name":"_tx","nameLocation":"338:3:319","nodeType":"VariableDeclaration","scope":206903,"src":"303:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206891,"nodeType":"UserDefinedTypeName","pathNode":{"id":206890,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"303:27:319"},"referencedDeclaration":108360,"src":"303:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":206894,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:319","nodeType":"VariableDeclaration","scope":206903,"src":"351:22:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206893,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206897,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"383:47:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":206896,"nodeType":"UserDefinedTypeName","pathNode":{"id":206895,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":108328,"src":"383:21:319"},"referencedDeclaration":108328,"src":"383:21:319","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$108328_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":206900,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:319","nodeType":"VariableDeclaration","scope":206903,"src":"440:33:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":206898,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":206899,"nodeType":"ArrayTypeName","src":"440:7:319","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:319"},"returnParameters":{"id":206902,"nodeType":"ParameterList","parameters":[],"src":"496:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206909,"nodeType":"FunctionDefinition","src":"503:88:319","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:319","parameters":{"id":206907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206906,"mutability":"mutable","name":"_tx","nameLocation":"577:3:319","nodeType":"VariableDeclaration","scope":206909,"src":"542:38:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":206905,"nodeType":"UserDefinedTypeName","pathNode":{"id":206904,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":108360,"src":"542:27:319"},"referencedDeclaration":108360,"src":"542:27:319","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$108360_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:319"},"returnParameters":{"id":206908,"nodeType":"ParameterList","parameters":[],"src":"590:0:319"},"scope":206910,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206910],"name":"IOptimismPortal","nameLocation":"117:15:319","scope":207028,"usedErrors":[]},{"id":206929,"nodeType":"ContractDefinition","src":"595:240:319","nodes":[{"id":206915,"nodeType":"FunctionDefinition","src":"629:52:319","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:319","parameters":{"id":206911,"nodeType":"ParameterList","parameters":[],"src":"646:2:319"},"returnParameters":{"id":206914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206915,"src":"672:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206912,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206920,"nodeType":"FunctionDefinition","src":"687:55:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:319","parameters":{"id":206916,"nodeType":"ParameterList","parameters":[],"src":"702:2:319"},"returnParameters":{"id":206919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206918,"mutability":"mutable","name":"paused_","nameLocation":"733:7:319","nodeType":"VariableDeclaration","scope":206920,"src":"728:12:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206917,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:319"},"scope":206929,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206925,"nodeType":"FunctionDefinition","src":"748:51:319","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:319","parameters":{"id":206923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206922,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:319","nodeType":"VariableDeclaration","scope":206925,"src":"763:25:319","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":206921,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:319","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:319"},"returnParameters":{"id":206924,"nodeType":"ParameterList","parameters":[],"src":"798:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206928,"nodeType":"FunctionDefinition","src":"805:28:319","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:319","parameters":{"id":206926,"nodeType":"ParameterList","parameters":[],"src":"821:2:319"},"returnParameters":{"id":206927,"nodeType":"ParameterList","parameters":[],"src":"832:0:319"},"scope":206929,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206929],"name":"ISuperchainConfig","nameLocation":"605:17:319","scope":207028,"usedErrors":[]},{"id":206973,"nodeType":"ContractDefinition","src":"837:564:319","nodes":[{"id":206934,"nodeType":"FunctionDefinition","src":"871:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:319","parameters":{"id":206930,"nodeType":"ParameterList","parameters":[],"src":"886:2:319"},"returnParameters":{"id":206933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206934,"src":"912:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206931,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206940,"nodeType":"FunctionDefinition","src":"924:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:319","parameters":{"id":206935,"nodeType":"ParameterList","parameters":[],"src":"942:2:319"},"returnParameters":{"id":206939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206940,"src":"968:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206937,"nodeType":"UserDefinedTypeName","pathNode":{"id":206936,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"968:23:319"},"referencedDeclaration":207027,"src":"968:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206946,"nodeType":"FunctionDefinition","src":"999:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:319","parameters":{"id":206941,"nodeType":"ParameterList","parameters":[],"src":"1019:2:319"},"returnParameters":{"id":206945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206946,"src":"1045:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206943,"nodeType":"UserDefinedTypeName","pathNode":{"id":206942,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1045:17:319"},"referencedDeclaration":206973,"src":"1045:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:319"},"scope":206973,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206961,"nodeType":"FunctionDefinition","src":"1070:215:319","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:319","parameters":{"id":206959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206948,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:319","nodeType":"VariableDeclaration","scope":206961,"src":"1108:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206947,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206950,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:319","nodeType":"VariableDeclaration","scope":206961,"src":"1137:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206949,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206952,"mutability":"mutable","name":"_from","nameLocation":"1175:5:319","nodeType":"VariableDeclaration","scope":206961,"src":"1167:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206951,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206954,"mutability":"mutable","name":"_to","nameLocation":"1198:3:319","nodeType":"VariableDeclaration","scope":206961,"src":"1190:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206953,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206956,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:319","nodeType":"VariableDeclaration","scope":206961,"src":"1211:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206958,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:319","nodeType":"VariableDeclaration","scope":206961,"src":"1236:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206957,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:319"},"returnParameters":{"id":206960,"nodeType":"ParameterList","parameters":[],"src":"1284:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":206972,"nodeType":"FunctionDefinition","src":"1291:108:319","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:319","parameters":{"id":206970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206963,"mutability":"mutable","name":"_from","nameLocation":"1326:5:319","nodeType":"VariableDeclaration","scope":206972,"src":"1318:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206962,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206965,"mutability":"mutable","name":"_to","nameLocation":"1341:3:319","nodeType":"VariableDeclaration","scope":206972,"src":"1333:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206964,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206967,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:319","nodeType":"VariableDeclaration","scope":206972,"src":"1346:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206969,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:319","nodeType":"VariableDeclaration","scope":206972,"src":"1363:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":206968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:319"},"returnParameters":{"id":206971,"nodeType":"ParameterList","parameters":[],"src":"1398:0:319"},"scope":206973,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[206973],"name":"IL1StandardBridge","nameLocation":"847:17:319","scope":207028,"usedErrors":[]},{"id":207006,"nodeType":"ContractDefinition","src":"1403:449:319","nodes":[{"id":206978,"nodeType":"FunctionDefinition","src":"1435:47:319","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:319","parameters":{"id":206974,"nodeType":"ParameterList","parameters":[],"src":"1450:2:319"},"returnParameters":{"id":206977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206978,"src":"1476:4:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":206975,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:319","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206984,"nodeType":"FunctionDefinition","src":"1488:69:319","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:319","parameters":{"id":206979,"nodeType":"ParameterList","parameters":[],"src":"1506:2:319"},"returnParameters":{"id":206983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206984,"src":"1532:23:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":206981,"nodeType":"UserDefinedTypeName","pathNode":{"id":206980,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":207027,"src":"1532:23:319"},"referencedDeclaration":207027,"src":"1532:23:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$207027","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":206990,"nodeType":"FunctionDefinition","src":"1563:65:319","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:319","parameters":{"id":206985,"nodeType":"ParameterList","parameters":[],"src":"1583:2:319"},"returnParameters":{"id":206989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206990,"src":"1609:17:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"},"typeName":{"id":206987,"nodeType":"UserDefinedTypeName","pathNode":{"id":206986,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":206973,"src":"1609:17:319"},"referencedDeclaration":206973,"src":"1609:17:319","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$206973","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:319"},"scope":207006,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":207005,"nodeType":"FunctionDefinition","src":"1634:216:319","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:319","parameters":{"id":207003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206992,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:319","nodeType":"VariableDeclaration","scope":207005,"src":"1673:19:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206991,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206994,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:319","nodeType":"VariableDeclaration","scope":207005,"src":"1702:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206993,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206996,"mutability":"mutable","name":"_from","nameLocation":"1740:5:319","nodeType":"VariableDeclaration","scope":207005,"src":"1732:13:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206995,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206998,"mutability":"mutable","name":"_to","nameLocation":"1763:3:319","nodeType":"VariableDeclaration","scope":207005,"src":"1755:11:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206997,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207000,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:319","nodeType":"VariableDeclaration","scope":207005,"src":"1776:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207002,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:319","nodeType":"VariableDeclaration","scope":207005,"src":"1801:25:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:319"},"returnParameters":{"id":207004,"nodeType":"ParameterList","parameters":[],"src":"1849:0:319"},"scope":207006,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207006],"name":"IL1ERC721Bridge","nameLocation":"1413:15:319","scope":207028,"usedErrors":[]},{"id":207027,"nodeType":"ContractDefinition","src":"1854:334:319","nodes":[{"id":207021,"nodeType":"FunctionDefinition","src":"1894:222:319","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:319","parameters":{"id":207019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207008,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1925:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207010,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1949:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207009,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207012,"mutability":"mutable","name":"_target","nameLocation":"1982:7:319","nodeType":"VariableDeclaration","scope":207021,"src":"1974:15:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207011,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207014,"mutability":"mutable","name":"_value","nameLocation":"2007:6:319","nodeType":"VariableDeclaration","scope":207021,"src":"1999:14:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207016,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:319","nodeType":"VariableDeclaration","scope":207021,"src":"2023:20:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:319","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207018,"mutability":"mutable","name":"_message","nameLocation":"2068:8:319","nodeType":"VariableDeclaration","scope":207021,"src":"2053:23:319","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":207017,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:319","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:319"},"returnParameters":{"id":207020,"nodeType":"ParameterList","parameters":[],"src":"2115:0:319"},"scope":207027,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":207026,"nodeType":"FunctionDefinition","src":"2122:64:319","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:319","parameters":{"id":207022,"nodeType":"ParameterList","parameters":[],"src":"2151:2:319"},"returnParameters":{"id":207025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":207026,"src":"2177:7:319","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207023,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:319","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:319"},"scope":207027,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[207027],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:319","scope":207028,"usedErrors":[]}],"license":"MIT"},"id":319}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Tests inheriting this contract cannot be run with forge\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/utils/KontrolUtils.sol\":\"KontrolUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]},\"test/kontrol/proofs/utils/KontrolUtils.sol\":{\"keccak256\":\"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a\",\"dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/utils/KontrolUtils.sol":"KontrolUtils"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"},"test/kontrol/proofs/utils/KontrolUtils.sol":{"keccak256":"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91","urls":["bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a","dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Tests inheriting this contract cannot be run with forge"},"devdoc":{"version":1,"kind":"dev"},"id":295}
{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Tests inheriting this contract cannot be run with forge\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/utils/KontrolUtils.sol\":\"KontrolUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]},\"test/kontrol/proofs/utils/KontrolUtils.sol\":{\"keccak256\":\"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a\",\"dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/utils/KontrolUtils.sol":"KontrolUtils"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"},"test/kontrol/proofs/utils/KontrolUtils.sol":{"keccak256":"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91","urls":["bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a","dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Tests inheriting this contract cannot be run with forge"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/utils/KontrolUtils.sol","id":213005,"exportedSymbols":{"KontrolCheats":[46890],"KontrolUtils":[213004],"Vm":[15843]},"nodeType":"SourceUnit","src":"814:346:324","nodes":[{"id":212979,"nodeType":"PragmaDirective","src":"814:23:324","nodes":[],"literals":["solidity","0.8",".15"]},{"id":212981,"nodeType":"ImportDirective","src":"839:38:324","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":213005,"sourceUnit":15844,"symbolAliases":[{"foreign":{"id":212980,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"848:2:324","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":212983,"nodeType":"ImportDirective","src":"878:69:324","nodes":[],"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","file":"kontrol-cheatcodes/KontrolCheats.sol","nameLocation":"-1:-1:-1","scope":213005,"sourceUnit":46891,"symbolAliases":[{"foreign":{"id":212982,"name":"KontrolCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46890,"src":"887:13:324","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":213004,"nodeType":"ContractDefinition","src":"1017:142:324","nodes":[{"id":213003,"nodeType":"VariableDeclaration","src":"1071:85:324","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1092:2:324","scope":213004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"},"typeName":{"id":212988,"nodeType":"UserDefinedTypeName","pathNode":{"id":212987,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":15843,"src":"1071:2:324"},"referencedDeclaration":15843,"src":"1071:2:324","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":212997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1134:17:324","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":212996,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1124:9:324","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":212998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1124:28:324","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":212995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1116:7:324","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":212994,"name":"uint256","nodeType":"ElementaryTypeName","src":"1116:7:324","typeDescriptions":{}}},"id":212999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1116:37:324","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":212993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1108:7:324","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":212992,"name":"uint160","nodeType":"ElementaryTypeName","src":"1108:7:324","typeDescriptions":{}}},"id":213000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1108:46:324","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":212991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:7:324","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":212990,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:324","typeDescriptions":{}}},"id":213001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1100:55:324","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":212989,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"1097:2:324","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15843_$","typeString":"type(contract Vm)"}},"id":213002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:59:324","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15843","typeString":"contract Vm"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":212985,"name":"KontrolCheats","nodeType":"IdentifierPath","referencedDeclaration":46890,"src":"1051:13:324"},"id":212986,"nodeType":"InheritanceSpecifier","src":"1051:13:324"}],"canonicalName":"KontrolUtils","contractDependencies":[],"contractKind":"contract","documentation":{"id":212984,"nodeType":"StructuredDocumentation","src":"949:68:324","text":"@notice Tests inheriting this contract cannot be run with forge"},"fullyImplemented":true,"linearizedBaseContracts":[213004,46890],"name":"KontrolUtils","nameLocation":"1035:12:324","scope":213005,"usedErrors":[]}],"license":"MIT"},"id":324}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getL1BlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610219806100206000396000f3fe60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:179:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:179:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:21;924:18;:16;:18::i;:::-;900:42;;985:13;982:1;975:24;1022:2;1019:1;1012:13;668:835;1130:21;1154:18;:16;:18::i;771:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1371:130;;;;;;;;;;;;;:::i;:::-;;;821:25:350;;;809:2;794:18;1371:130:179;675:177:350;1371:130:179;1420:7;1455:42:194;1446:46:179;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1439:55;;;;1371:130;:::o;14:656:350:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:350;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:350:o;857:288::-;926:6;979:2;967:9;958:7;954:23;950:32;947:52;;;995:1;992;985:12;947:52;1027:9;1021:16;1077:18;1070:5;1066:30;1059:5;1056:41;1046:69;;1111:1;1108;1101:12;1046:69;1134:5;857:288;-1:-1:-1;;;857:288:350:o","linkReferences":{}},"methodIdentifiers":{"getL1BlockNumber()":"b9b3efe9","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getL1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000013\",\"kind\":\"dev\",\"methods\":{\"getL1BlockNumber()\":{\"returns\":{\"_0\":\"Latest L1 block number.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L1BlockNumber\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getL1BlockNumber()\":{\"notice\":\"Retrieves the latest L1 block number.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/L1BlockNumber.sol\":\"L1BlockNumber\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/legacy/L1BlockNumber.sol\":{\"keccak256\":\"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7\",\"dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getL1BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"version":1},"userdoc":{"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/L1BlockNumber.sol":"L1BlockNumber"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/legacy/L1BlockNumber.sol":{"keccak256":"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8","urls":["bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7","dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"notice":"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead."},"devdoc":{"version":1,"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"title":"L1BlockNumber"},"id":179}
{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getL1BlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610219806100206000396000f3fe60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:191:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:191:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:21;924:18;:16;:18::i;:::-;900:42;;985:13;982:1;975:24;1022:2;1019:1;1012:13;668:835;1130:21;1154:18;:16;:18::i;771:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1371:130;;;;;;;;;;;;;:::i;:::-;;;821:25:382;;;809:2;794:18;1371:130:191;675:177:382;1371:130:191;1420:7;2827:42:206;1446:46:191;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1439:55;;;;1371:130;:::o;14:656:382:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:382;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:382:o;857:288::-;926:6;979:2;967:9;958:7;954:23;950:32;947:52;;;995:1;992;985:12;947:52;1027:9;1021:16;1077:18;1070:5;1066:30;1059:5;1056:41;1046:69;;1111:1;1108;1101:12;1046:69;1134:5;857:288;-1:-1:-1;;;857:288:382:o","linkReferences":{}},"methodIdentifiers":{"getL1BlockNumber()":"b9b3efe9","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getL1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000013\",\"kind\":\"dev\",\"methods\":{\"getL1BlockNumber()\":{\"returns\":{\"_0\":\"Latest L1 block number.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L1BlockNumber\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getL1BlockNumber()\":{\"notice\":\"Retrieves the latest L1 block number.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/L1BlockNumber.sol\":\"L1BlockNumber\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/legacy/L1BlockNumber.sol\":{\"keccak256\":\"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7\",\"dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getL1BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"version":1},"userdoc":{"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/L1BlockNumber.sol":"L1BlockNumber"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/legacy/L1BlockNumber.sol":{"keccak256":"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8","urls":["bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7","dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"notice":"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead."},"devdoc":{"version":1,"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"title":"L1BlockNumber"},"ast":{"absolutePath":"src/legacy/L1BlockNumber.sol","id":105355,"exportedSymbols":{"ISemver":[113621],"L1Block":[92479],"L1BlockNumber":[105354],"Predeploys":[107708]},"nodeType":"SourceUnit","src":"32:1472:191","nodes":[{"id":105304,"nodeType":"PragmaDirective","src":"32:23:191","nodes":[],"literals":["solidity","0.8",".15"]},{"id":105306,"nodeType":"ImportDirective","src":"57:45:191","nodes":[],"absolutePath":"src/L2/L1Block.sol","file":"src/L2/L1Block.sol","nameLocation":"-1:-1:-1","scope":105355,"sourceUnit":92480,"symbolAliases":[{"foreign":{"id":105305,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92479,"src":"66:7:191","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105308,"nodeType":"ImportDirective","src":"103:58:191","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":105355,"sourceUnit":107709,"symbolAliases":[{"foreign":{"id":105307,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"112:10:191","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105310,"nodeType":"ImportDirective","src":"162:52:191","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":105355,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":105309,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"171:7:191","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105354,"nodeType":"ContractDefinition","src":"668:835:191","nodes":[{"id":105317,"nodeType":"VariableDeclaration","src":"771:40:191","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":105314,"nodeType":"StructuredDocumentation","src":"708:58:191","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"794:7:191","scope":105354,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105315,"name":"string","nodeType":"ElementaryTypeName","src":"771:6:191","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":105316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"804:7:191","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":105328,"nodeType":"FunctionDefinition","src":"863:178:191","nodes":[],"body":{"id":105327,"nodeType":"Block","src":"890:151:191","nodes":[],"statements":[{"assignments":[105322],"declarations":[{"constant":false,"id":105322,"mutability":"mutable","name":"l1BlockNumber","nameLocation":"908:13:191","nodeType":"VariableDeclaration","scope":105327,"src":"900:21:191","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":105321,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:191","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":105325,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":105323,"name":"getL1BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105353,"src":"924:16:191","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":105324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"924:18:191","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"900:42:191"},{"AST":{"nodeType":"YulBlock","src":"961:74:191","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"982:1:191","type":"","value":"0"},{"name":"l1BlockNumber","nodeType":"YulIdentifier","src":"985:13:191"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"975:6:191"},"nodeType":"YulFunctionCall","src":"975:24:191"},"nodeType":"YulExpressionStatement","src":"975:24:191"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1019:1:191","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1022:2:191","type":"","value":"32"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1012:6:191"},"nodeType":"YulFunctionCall","src":"1012:13:191"},"nodeType":"YulExpressionStatement","src":"1012:13:191"}]},"evmVersion":"london","externalReferences":[{"declaration":105322,"isOffset":false,"isSlot":false,"src":"985:13:191","valueSize":1}],"id":105326,"nodeType":"InlineAssembly","src":"952:83:191"}]},"documentation":{"id":105318,"nodeType":"StructuredDocumentation","src":"818:40:191","text":"@notice Returns the L1 block number."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":105319,"nodeType":"ParameterList","parameters":[],"src":"870:2:191"},"returnParameters":{"id":105320,"nodeType":"ParameterList","parameters":[],"src":"890:0:191"},"scope":105354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":105339,"nodeType":"FunctionDefinition","src":"1092:179:191","nodes":[],"body":{"id":105338,"nodeType":"Block","src":"1120:151:191","nodes":[],"statements":[{"assignments":[105333],"declarations":[{"constant":false,"id":105333,"mutability":"mutable","name":"l1BlockNumber","nameLocation":"1138:13:191","nodeType":"VariableDeclaration","scope":105338,"src":"1130:21:191","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":105332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1130:7:191","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":105336,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":105334,"name":"getL1BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105353,"src":"1154:16:191","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":105335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1154:18:191","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1130:42:191"},{"AST":{"nodeType":"YulBlock","src":"1191:74:191","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1212:1:191","type":"","value":"0"},{"name":"l1BlockNumber","nodeType":"YulIdentifier","src":"1215:13:191"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1205:6:191"},"nodeType":"YulFunctionCall","src":"1205:24:191"},"nodeType":"YulExpressionStatement","src":"1205:24:191"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1249:1:191","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1252:2:191","type":"","value":"32"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1242:6:191"},"nodeType":"YulFunctionCall","src":"1242:13:191"},"nodeType":"YulExpressionStatement","src":"1242:13:191"}]},"evmVersion":"london","externalReferences":[{"declaration":105333,"isOffset":false,"isSlot":false,"src":"1215:13:191","valueSize":1}],"id":105337,"nodeType":"InlineAssembly","src":"1182:83:191"}]},"documentation":{"id":105329,"nodeType":"StructuredDocumentation","src":"1047:40:191","text":"@notice Returns the L1 block number."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":105330,"nodeType":"ParameterList","parameters":[],"src":"1100:2:191"},"returnParameters":{"id":105331,"nodeType":"ParameterList","parameters":[],"src":"1120:0:191"},"scope":105354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":105353,"nodeType":"FunctionDefinition","src":"1371:130:191","nodes":[],"body":{"id":105352,"nodeType":"Block","src":"1429:72:191","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":105346,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107708,"src":"1454:10:191","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$107708_$","typeString":"type(library Predeploys)"}},"id":105347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":107325,"src":"1454:30:191","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":105345,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92479,"src":"1446:7:191","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$92479_$","typeString":"type(contract L1Block)"}},"id":105348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1446:39:191","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$92479","typeString":"contract L1Block"}},"id":105349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":92268,"src":"1446:46:191","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":105350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1446:48:191","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":105344,"id":105351,"nodeType":"Return","src":"1439:55:191"}]},"documentation":{"id":105340,"nodeType":"StructuredDocumentation","src":"1277:89:191","text":"@notice Retrieves the latest L1 block number.\n @return Latest L1 block number."},"functionSelector":"b9b3efe9","implemented":true,"kind":"function","modifiers":[],"name":"getL1BlockNumber","nameLocation":"1380:16:191","parameters":{"id":105341,"nodeType":"ParameterList","parameters":[],"src":"1396:2:191"},"returnParameters":{"id":105344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105353,"src":"1420:7:191","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":105342,"name":"uint256","nodeType":"ElementaryTypeName","src":"1420:7:191","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1419:9:191"},"scope":105354,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":105312,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"694:7:191"},"id":105313,"nodeType":"InheritanceSpecifier","src":"694:7:191"}],"canonicalName":"L1BlockNumber","contractDependencies":[],"contractKind":"contract","documentation":{"id":105311,"nodeType":"StructuredDocumentation","src":"216:452:191","text":"@custom:legacy\n @custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000013\n @title L1BlockNumber\n @notice L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract\n in the old version of the Optimism system. Only necessary for backwards compatibility.\n If you want to access the L1 block number going forward, you should use the L1Block\n contract instead."},"fullyImplemented":true,"linearizedBaseContracts":[105354,113621],"name":"L1BlockNumber","nameLocation":"677:13:191","scope":105355,"usedErrors":[]}],"license":"MIT"},"id":191}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:142:-:0;;;787:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;934:10:142;946:20;968:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;787:208:142;;;352:645;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;352:645:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;462:40:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":439,"length":32},{"start":475,"length":32}],"105744":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"105748":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000001A\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"L1FeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the L1FeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The L1FeeVault accumulates the L1 portion of the transaction fees.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1FeeVault.sol\":\"L1FeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/L1FeeVault.sol\":{\"keccak256\":\"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b\",\"dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1FeeVault.sol":"L1FeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/L1FeeVault.sol":{"keccak256":"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198","urls":["bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b","dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/L1FeeVault.sol:L1FeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The L1FeeVault accumulates the L1 portion of the transaction fees."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"L1FeeVault"},"id":142}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:152:-:0;;;787:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:236;;;;2461:44;;;;934:10:152;946:20;968:18;;2515:39:236;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;787:208:152;;;352:645;;14:518:382;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:382;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:382;-1:-1:-1;480:1:382;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;352:645:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:152:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:236;;;;;;;;;;;;;;;;;;190:42:382;178:55;;;160:74;;148:2;133:18;820:34:236;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;462:40:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:236:-;;;;;;;;;;;;;;;;;;;1152:25:382;;;1140:2;1125:18;1188:29:236;1006:177:382;927:53:236;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:382;2771:167:236;;;2099:21:382;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:236;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:236;;;2887:25:382;;;3053:9:236;2931:42:382;3009:15;3004:2;2989:18;;2982:43;3064:10:236;3041:18:382;;;3034:43;3035:40:236;;;;;;;2875:2:382;3035:40:236;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:382;3292:68:236;;;4006:21:382;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:236;3822:412:382;3292:68:236;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:236;;3391:156;;;;;1903:42:206;;3391:68:236;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:382:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:382;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:382:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:382:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:382;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"113335":[{"start":439,"length":32},{"start":475,"length":32}],"113338":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"113342":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000001A\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"L1FeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the L1FeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The L1FeeVault accumulates the L1 portion of the transaction fees.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1FeeVault.sol\":\"L1FeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/L2/L1FeeVault.sol\":{\"keccak256\":\"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b\",\"dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92\",\"dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893\",\"dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc\",\"dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1FeeVault.sol":"L1FeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/L2/L1FeeVault.sol":{"keccak256":"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198","urls":["bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b","dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525","urls":["bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92","dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f","urls":["bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893","dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e","urls":["bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc","dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":113349,"contract":"src/L2/L1FeeVault.sol:L1FeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The L1FeeVault accumulates the L1 portion of the transaction fees."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"L1FeeVault"},"ast":{"absolutePath":"src/L2/L1FeeVault.sol","id":92765,"exportedSymbols":{"FeeVault":[113482],"ISemver":[113621],"L1FeeVault":[92764]},"nodeType":"SourceUnit","src":"32:966:152","nodes":[{"id":92733,"nodeType":"PragmaDirective","src":"32:23:152","nodes":[],"literals":["solidity","0.8",".15"]},{"id":92735,"nodeType":"ImportDirective","src":"57:52:152","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":92765,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":92734,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92737,"nodeType":"ImportDirective","src":"110:54:152","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":92765,"sourceUnit":113483,"symbolAliases":[{"foreign":{"id":92736,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113482,"src":"119:8:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92764,"nodeType":"ContractDefinition","src":"352:645:152","nodes":[{"id":92746,"nodeType":"VariableDeclaration","src":"462:40:152","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":92743,"nodeType":"StructuredDocumentation","src":"399:58:152","text":"@notice Semantic version.\n @custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"485:7:152","scope":92764,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":92744,"name":"string","nodeType":"ElementaryTypeName","src":"462:6:152","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":92745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"495:7:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":92763,"nodeType":"FunctionDefinition","src":"787:208:152","nodes":[],"body":{"id":92762,"nodeType":"Block","src":"992:3:152","nodes":[],"statements":[]},"documentation":{"id":92747,"nodeType":"StructuredDocumentation","src":"509:273:152","text":"@notice Constructs the L1FeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":92757,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92749,"src":"934:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":92758,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92751,"src":"946:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":92759,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92754,"src":"968:18:152","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":92760,"kind":"baseConstructorSpecifier","modifierName":{"id":92756,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"925:8:152"},"nodeType":"ModifierInvocation","src":"925:62:152"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":92755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92749,"mutability":"mutable","name":"_recipient","nameLocation":"816:10:152","nodeType":"VariableDeclaration","scope":92763,"src":"808:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92748,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":92751,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"844:20:152","nodeType":"VariableDeclaration","scope":92763,"src":"836:28:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92750,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":92754,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"892:18:152","nodeType":"VariableDeclaration","scope":92763,"src":"874:36:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":92753,"nodeType":"UserDefinedTypeName","pathNode":{"id":92752,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":113332,"src":"874:17:152"},"referencedDeclaration":113332,"src":"874:17:152","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"798:118:152"},"returnParameters":{"id":92761,"nodeType":"ParameterList","parameters":[],"src":"992:0:152"},"scope":92764,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":92739,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"375:8:152"},"id":92740,"nodeType":"InheritanceSpecifier","src":"375:8:152"},{"baseName":{"id":92741,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"385:7:152"},"id":92742,"nodeType":"InheritanceSpecifier","src":"385:7:152"}],"canonicalName":"L1FeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":92738,"nodeType":"StructuredDocumentation","src":"166:186:152","text":"@custom:proxied\n @custom:predeploy 0x420000000000000000000000000000000000001A\n @title L1FeeVault\n @notice The L1FeeVault accumulates the L1 portion of the transaction fees."},"fullyImplemented":true,"linearizedBaseContracts":[92764,113621,113482],"name":"L1FeeVault","nameLocation":"361:10:152","scope":92765,"usedErrors":[]}],"license":"MIT"},"id":152}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"passMessageToL1","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061035a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:181:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:181:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;554:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1074:14:350;;1067:22;1049:41;;1037:2;1022:18;554:44:181;909:187:350;802:144:181;;;;;;:::i;:::-;;:::i;:::-;;;935:4;869:12;:63;909:8;919:10;892:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;882:49;;892:38;882:49;;;;869:63;;;;;;;;;;-1:-1:-1;869:63:181;:70;;;;;;;;;;;;;-1:-1:-1;802:144:181:o;14:258:350:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;640:66;619:88;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:350:o;724:180::-;783:6;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;-1:-1:-1;875:23:350;;724:180;-1:-1:-1;724:180:350:o;1101:184::-;1153:77;1150:1;1143:88;1250:4;1247:1;1240:15;1274:4;1271:1;1264:15;1290:980;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;1467:9;1454:23;1496:18;1537:2;1529:6;1526:14;1523:34;;;1553:1;1550;1543:12;1523:34;1591:6;1580:9;1576:22;1566:32;;1636:7;1629:4;1625:2;1621:13;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:2;1681:16;1716:2;1712;1709:10;1706:36;;;1722:18;;:::i;:::-;1856:2;1850:9;1918:4;1910:13;;1761:66;1906:22;;;1930:2;1902:31;1898:40;1886:53;;;1954:18;;;1974:22;;;1951:46;1948:72;;;2000:18;;:::i;:::-;2040:10;2036:2;2029:22;2075:2;2067:6;2060:18;2115:7;2110:2;2105;2101;2097:11;2093:20;2090:33;2087:53;;;2136:1;2133;2126:12;2087:53;2192:2;2187;2183;2179:11;2174:2;2166:6;2162:15;2149:46;2237:1;2215:15;;;2232:2;2211:24;2204:35;;;;-1:-1:-1;2219:6:350;1290:980;-1:-1:-1;;;;;1290:980:350:o;2275:450::-;2432:3;2470:6;2464:13;2486:53;2532:6;2527:3;2520:4;2512:6;2508:17;2486:53;:::i;:::-;2608:2;2604:15;;;;2621:66;2600:88;2561:16;;;;2586:103;;;2716:2;2705:14;;2275:450;-1:-1:-1;;2275:450:350:o","linkReferences":{}},"methodIdentifiers":{"passMessageToL1(bytes)":"cafa81dc","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"passMessageToL1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000000\",\"kind\":\"dev\",\"methods\":{\"passMessageToL1(bytes)\":{\"params\":{\"_message\":\"Message to pass to L1.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"LegacyMessagePasser\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"passMessageToL1(bytes)\":{\"notice\":\"Passes a message to L1.\"},\"sentMessages(bytes32)\":{\"notice\":\"Mapping of sent message hashes to boolean status.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/LegacyMessagePasser.sol\":\"LegacyMessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/LegacyMessagePasser.sol\":{\"keccak256\":\"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99\",\"dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"passMessageToL1"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"version":1},"userdoc":{"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/LegacyMessagePasser.sol":"LegacyMessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/LegacyMessagePasser.sol":{"keccak256":"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803","urls":["bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99","dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":99037,"contract":"src/legacy/LegacyMessagePasser.sol:LegacyMessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"notice":"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"devdoc":{"version":1,"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"title":"LegacyMessagePasser"},"id":181}
{"abi":[{"type":"function","name":"passMessageToL1","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061035a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:193:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:193:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;554:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1074:14:382;;1067:22;1049:41;;1037:2;1022:18;554:44:193;909:187:382;802:144:193;;;;;;:::i;:::-;;:::i;:::-;;;935:4;869:12;:63;909:8;919:10;892:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;882:49;;892:38;882:49;;;;869:63;;;;;;;;;;-1:-1:-1;869:63:193;:70;;;;;;;;;;;;;-1:-1:-1;802:144:193:o;14:258:382:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;640:66;619:88;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:382:o;724:180::-;783:6;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;-1:-1:-1;875:23:382;;724:180;-1:-1:-1;724:180:382:o;1101:184::-;1153:77;1150:1;1143:88;1250:4;1247:1;1240:15;1274:4;1271:1;1264:15;1290:980;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;1467:9;1454:23;1496:18;1537:2;1529:6;1526:14;1523:34;;;1553:1;1550;1543:12;1523:34;1591:6;1580:9;1576:22;1566:32;;1636:7;1629:4;1625:2;1621:13;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:2;1681:16;1716:2;1712;1709:10;1706:36;;;1722:18;;:::i;:::-;1856:2;1850:9;1918:4;1910:13;;1761:66;1906:22;;;1930:2;1902:31;1898:40;1886:53;;;1954:18;;;1974:22;;;1951:46;1948:72;;;2000:18;;:::i;:::-;2040:10;2036:2;2029:22;2075:2;2067:6;2060:18;2115:7;2110:2;2105;2101;2097:11;2093:20;2090:33;2087:53;;;2136:1;2133;2126:12;2087:53;2192:2;2187;2183;2179:11;2174:2;2166:6;2162:15;2149:46;2237:1;2215:15;;;2232:2;2211:24;2204:35;;;;-1:-1:-1;2219:6:382;1290:980;-1:-1:-1;;;;;1290:980:382:o;2275:450::-;2432:3;2470:6;2464:13;2486:53;2532:6;2527:3;2520:4;2512:6;2508:17;2486:53;:::i;:::-;2608:2;2604:15;;;;2621:66;2600:88;2561:16;;;;2586:103;;;2716:2;2705:14;;2275:450;-1:-1:-1;;2275:450:382:o","linkReferences":{}},"methodIdentifiers":{"passMessageToL1(bytes)":"cafa81dc","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"passMessageToL1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000000\",\"kind\":\"dev\",\"methods\":{\"passMessageToL1(bytes)\":{\"params\":{\"_message\":\"Message to pass to L1.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"LegacyMessagePasser\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"passMessageToL1(bytes)\":{\"notice\":\"Passes a message to L1.\"},\"sentMessages(bytes32)\":{\"notice\":\"Mapping of sent message hashes to boolean status.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/LegacyMessagePasser.sol\":\"LegacyMessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/LegacyMessagePasser.sol\":{\"keccak256\":\"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99\",\"dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"passMessageToL1"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"version":1},"userdoc":{"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/LegacyMessagePasser.sol":"LegacyMessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/LegacyMessagePasser.sol":{"keccak256":"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803","urls":["bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99","dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105681,"contract":"src/legacy/LegacyMessagePasser.sol:LegacyMessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"notice":"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"devdoc":{"version":1,"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"title":"LegacyMessagePasser"},"ast":{"absolutePath":"src/legacy/LegacyMessagePasser.sol","id":105707,"exportedSymbols":{"ISemver":[113621],"LegacyMessagePasser":[105706]},"nodeType":"SourceUnit","src":"32:917:193","nodes":[{"id":105671,"nodeType":"PragmaDirective","src":"32:23:193","nodes":[],"literals":["solidity","0.8",".15"]},{"id":105673,"nodeType":"ImportDirective","src":"57:52:193","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":105707,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":105672,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:193","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105706,"nodeType":"ContractDefinition","src":"442:506:193","nodes":[{"id":105681,"nodeType":"VariableDeclaration","src":"554:44:193","nodes":[],"constant":false,"documentation":{"id":105677,"nodeType":"StructuredDocumentation","src":"488:61:193","text":"@notice Mapping of sent message hashes to boolean status."},"functionSelector":"82e3702d","mutability":"mutable","name":"sentMessages","nameLocation":"586:12:193","scope":105706,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":105680,"keyType":{"id":105678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"562:7:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"554:24:193","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":105679,"name":"bool","nodeType":"ElementaryTypeName","src":"573:4:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":105685,"nodeType":"VariableDeclaration","src":"668:40:193","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":105682,"nodeType":"StructuredDocumentation","src":"605:58:193","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"691:7:193","scope":105706,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105683,"name":"string","nodeType":"ElementaryTypeName","src":"668:6:193","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":105684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"701:7:193","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":105705,"nodeType":"FunctionDefinition","src":"802:144:193","nodes":[],"body":{"id":105704,"nodeType":"Block","src":"859:87:193","nodes":[],"statements":[{"expression":{"id":105702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":105691,"name":"sentMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105681,"src":"869:12:193","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":105700,"indexExpression":{"arguments":[{"arguments":[{"id":105695,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105688,"src":"909:8:193","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":105696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"919:3:193","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":105697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"919:10:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":105693,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"892:3:193","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":105694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"892:16:193","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":105698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"892:38:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":105692,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"882:9:193","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":105699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"882:49:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"869:63:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":105701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"935:4:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"869:70:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":105703,"nodeType":"ExpressionStatement","src":"869:70:193"}]},"documentation":{"id":105686,"nodeType":"StructuredDocumentation","src":"715:82:193","text":"@notice Passes a message to L1.\n @param _message Message to pass to L1."},"functionSelector":"cafa81dc","implemented":true,"kind":"function","modifiers":[],"name":"passMessageToL1","nameLocation":"811:15:193","parameters":{"id":105689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105688,"mutability":"mutable","name":"_message","nameLocation":"840:8:193","nodeType":"VariableDeclaration","scope":105705,"src":"827:21:193","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":105687,"name":"bytes","nodeType":"ElementaryTypeName","src":"827:5:193","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"826:23:193"},"returnParameters":{"id":105690,"nodeType":"ParameterList","parameters":[],"src":"859:0:193"},"scope":105706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":105675,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"474:7:193"},"id":105676,"nodeType":"InheritanceSpecifier","src":"474:7:193"}],"canonicalName":"LegacyMessagePasser","contractDependencies":[],"contractKind":"contract","documentation":{"id":105674,"nodeType":"StructuredDocumentation","src":"111:331:193","text":"@custom:legacy\n @custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000000\n @title LegacyMessagePasser\n @notice The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1\n before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"fullyImplemented":true,"linearizedBaseContracts":[105706,113621],"name":"LegacyMessagePasser","nameLocation":"451:19:193","scope":105707,"usedErrors":[]}],"license":"MIT"},"id":193}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2134:375:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClaim\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Claim` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClaim\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClaim"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Claim` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClaim"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4980:1089:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4980:1089:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4980:1089:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClaim\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Claim` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClaim\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClaim"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Claim` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClaim"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;206:1820:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Clock` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClock"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Clock` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClock"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1066:1820:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1066:1820:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1066:1820:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Clock` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClock\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClock"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Clock` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClock"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2623:405:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibDuration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Duration` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibDuration\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibDuration"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Duration` type."},"devdoc":{"version":1,"kind":"dev","title":"LibDuration"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"6271:405:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;6271:405:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"6271:405:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibDuration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Duration` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibDuration\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibDuration"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Duration` type."},"devdoc":{"version":1,"kind":"dev","title":"LibDuration"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4660:402:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameType\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `GameType` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibGameType\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibGameType"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `GameType` type."},"devdoc":{"version":1,"kind":"dev","title":"LibGameType"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"8628:405:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;8628:405:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"8628:405:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameType\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `GameType` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibGameType\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibGameType"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `GameType` type."},"devdoc":{"version":1,"kind":"dev","title":"LibGameType"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3134:364:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibHash\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Hash` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibHash\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibHash"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Hash` type."},"devdoc":{"version":1,"kind":"dev","title":"LibHash"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"6851:364:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;6851:364:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"6851:364:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibHash\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Hash` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibHash\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibHash"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Hash` type."},"devdoc":{"version":1,"kind":"dev","title":"LibHash"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3614:416:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibTimestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Timestamp` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibTimestamp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibTimestamp"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Timestamp` type."},"devdoc":{"version":1,"kind":"dev","title":"LibTimestamp"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"7398:416:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;7398:416:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"7398:416:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibTimestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Timestamp` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibTimestamp\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibTimestamp"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Timestamp` type."},"devdoc":{"version":1,"kind":"dev","title":"LibTimestamp"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4144:402:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibVMStatus\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `VMStatus` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibVMStatus\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibVMStatus"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `VMStatus` type."},"devdoc":{"version":1,"kind":"dev","title":"LibVMStatus"},"id":172}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"8019:402:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;8019:402:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"8019:402:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibVMStatus\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `VMStatus` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibVMStatus\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibVMStatus"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `VMStatus` type."},"devdoc":{"version":1,"kind":"dev","title":"LibVMStatus"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":104202,"exportedSymbols":{"Claim":[104096],"Clock":[104004],"Duration":[104128],"GameId":[104058],"GameType":[104188],"Hash":[104143],"LibClaim":[104126],"LibClock":[104056],"LibDuration":[104141],"LibGameId":[104094],"LibGameType":[104201],"LibHash":[104156],"LibPosition":[103967],"LibTimestamp":[104171],"LibVMStatus":[104186],"Position":[103754],"Timestamp":[104158],"VMStatus":[104173]},"nodeType":"SourceUnit","src":"32:9002:183","nodes":[{"id":103969,"nodeType":"PragmaDirective","src":"32:24:183","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":103970,"nodeType":"ImportDirective","src":"58:41:183","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":104202,"sourceUnit":103968,"symbolAliases":[],"unitAlias":""},{"id":103974,"nodeType":"UsingForDirective","src":"101:32:183","nodes":[],"global":true,"libraryName":{"id":103971,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":104126,"src":"107:8:183"},"typeName":{"id":103973,"nodeType":"UserDefinedTypeName","pathNode":{"id":103972,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"120:5:183"},"referencedDeclaration":104096,"src":"120:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}}},{"id":103978,"nodeType":"UsingForDirective","src":"134:30:183","nodes":[],"global":true,"libraryName":{"id":103975,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":104156,"src":"140:7:183"},"typeName":{"id":103977,"nodeType":"UserDefinedTypeName","pathNode":{"id":103976,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"152:4:183"},"referencedDeclaration":104143,"src":"152:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}}},{"id":103982,"nodeType":"UsingForDirective","src":"165:38:183","nodes":[],"global":true,"libraryName":{"id":103979,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":104141,"src":"171:11:183"},"typeName":{"id":103981,"nodeType":"UserDefinedTypeName","pathNode":{"id":103980,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"187:8:183"},"referencedDeclaration":104128,"src":"187:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}}},{"id":103986,"nodeType":"UsingForDirective","src":"204:32:183","nodes":[],"global":true,"libraryName":{"id":103983,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":104056,"src":"210:8:183"},"typeName":{"id":103985,"nodeType":"UserDefinedTypeName","pathNode":{"id":103984,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"223:5:183"},"referencedDeclaration":104004,"src":"223:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}}},{"id":103990,"nodeType":"UsingForDirective","src":"237:34:183","nodes":[],"global":true,"libraryName":{"id":103987,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":104094,"src":"243:9:183"},"typeName":{"id":103989,"nodeType":"UserDefinedTypeName","pathNode":{"id":103988,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"257:6:183"},"referencedDeclaration":104058,"src":"257:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}}},{"id":103994,"nodeType":"UsingForDirective","src":"272:40:183","nodes":[],"global":true,"libraryName":{"id":103991,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":104171,"src":"278:12:183"},"typeName":{"id":103993,"nodeType":"UserDefinedTypeName","pathNode":{"id":103992,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"295:9:183"},"referencedDeclaration":104158,"src":"295:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}}},{"id":103998,"nodeType":"UsingForDirective","src":"313:38:183","nodes":[],"global":true,"libraryName":{"id":103995,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":104186,"src":"319:11:183"},"typeName":{"id":103997,"nodeType":"UserDefinedTypeName","pathNode":{"id":103996,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"335:8:183"},"referencedDeclaration":104173,"src":"335:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}}},{"id":104002,"nodeType":"UsingForDirective","src":"352:38:183","nodes":[],"global":true,"libraryName":{"id":103999,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":104201,"src":"358:11:183"},"typeName":{"id":104001,"nodeType":"UserDefinedTypeName","pathNode":{"id":104000,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"374:8:183"},"referencedDeclaration":104188,"src":"374:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}}},{"id":104004,"nodeType":"UserDefinedValueTypeDefinition","src":"936:22:183","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"941:5:183","underlyingType":{"id":104003,"name":"uint128","nodeType":"ElementaryTypeName","src":"950:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":104056,"nodeType":"ContractDefinition","src":"1066:1820:183","nodes":[{"id":104020,"nodeType":"FunctionDefinition","src":"1385:188:183","nodes":[],"body":{"id":104019,"nodeType":"Block","src":"1478:95:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1497:70:183","statements":[{"nodeType":"YulAssignment","src":"1511:46:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1528:4:183","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"1534:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1524:3:183"},"nodeType":"YulFunctionCall","src":"1524:20:183"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1546:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1521:2:183"},"nodeType":"YulFunctionCall","src":"1521:36:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1511:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104009,"isOffset":false,"isSlot":false,"src":"1534:9:183","valueSize":1},{"declaration":104012,"isOffset":false,"isSlot":false,"src":"1546:10:183","valueSize":1},{"declaration":104016,"isOffset":false,"isSlot":false,"src":"1511:6:183","valueSize":1}],"id":104018,"nodeType":"InlineAssembly","src":"1488:79:183"}]},"documentation":{"id":104006,"nodeType":"StructuredDocumentation","src":"1089:291:183","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"1394:4:183","parameters":{"id":104013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104009,"mutability":"mutable","name":"_duration","nameLocation":"1408:9:183","nodeType":"VariableDeclaration","scope":104020,"src":"1399:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104008,"nodeType":"UserDefinedTypeName","pathNode":{"id":104007,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1399:8:183"},"referencedDeclaration":104128,"src":"1399:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":104012,"mutability":"mutable","name":"_timestamp","nameLocation":"1429:10:183","nodeType":"VariableDeclaration","scope":104020,"src":"1419:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104011,"nodeType":"UserDefinedTypeName","pathNode":{"id":104010,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"1419:9:183"},"referencedDeclaration":104158,"src":"1419:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1398:42:183"},"returnParameters":{"id":104017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104016,"mutability":"mutable","name":"clock_","nameLocation":"1470:6:183","nodeType":"VariableDeclaration","scope":104020,"src":"1464:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104015,"nodeType":"UserDefinedTypeName","pathNode":{"id":104014,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1464:5:183"},"referencedDeclaration":104004,"src":"1464:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1463:14:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104032,"nodeType":"FunctionDefinition","src":"1773:251:183","nodes":[],"body":{"id":104031,"nodeType":"Block","src":"1848:176:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1964:54:183","statements":[{"nodeType":"YulAssignment","src":"1978:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1995:4:183","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"2001:6:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1991:3:183"},"nodeType":"YulFunctionCall","src":"1991:17:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1978:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104024,"isOffset":false,"isSlot":false,"src":"2001:6:183","valueSize":1},{"declaration":104028,"isOffset":false,"isSlot":false,"src":"1978:9:183","valueSize":1}],"id":104030,"nodeType":"InlineAssembly","src":"1955:63:183"}]},"documentation":{"id":104021,"nodeType":"StructuredDocumentation","src":"1579:189:183","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"1782:8:183","parameters":{"id":104025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104024,"mutability":"mutable","name":"_clock","nameLocation":"1797:6:183","nodeType":"VariableDeclaration","scope":104032,"src":"1791:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104023,"nodeType":"UserDefinedTypeName","pathNode":{"id":104022,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"1791:5:183"},"referencedDeclaration":104004,"src":"1791:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"1790:14:183"},"returnParameters":{"id":104029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104028,"mutability":"mutable","name":"duration_","nameLocation":"1837:9:183","nodeType":"VariableDeclaration","scope":104032,"src":"1828:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104027,"nodeType":"UserDefinedTypeName","pathNode":{"id":104026,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"1828:8:183"},"referencedDeclaration":104128,"src":"1828:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"1827:20:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104044,"nodeType":"FunctionDefinition","src":"2228:300:183","nodes":[],"body":{"id":104043,"nodeType":"Block","src":"2306:222:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2456:66:183","statements":[{"nodeType":"YulAssignment","src":"2470:42:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2488:4:183","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2498:4:183","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"2504:6:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2494:3:183"},"nodeType":"YulFunctionCall","src":"2494:17:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2484:3:183"},"nodeType":"YulFunctionCall","src":"2484:28:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2470:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104036,"isOffset":false,"isSlot":false,"src":"2504:6:183","valueSize":1},{"declaration":104040,"isOffset":false,"isSlot":false,"src":"2470:10:183","valueSize":1}],"id":104042,"nodeType":"InlineAssembly","src":"2447:75:183"}]},"documentation":{"id":104033,"nodeType":"StructuredDocumentation","src":"2030:193:183","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2237:9:183","parameters":{"id":104037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104036,"mutability":"mutable","name":"_clock","nameLocation":"2253:6:183","nodeType":"VariableDeclaration","scope":104044,"src":"2247:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104035,"nodeType":"UserDefinedTypeName","pathNode":{"id":104034,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2247:5:183"},"referencedDeclaration":104004,"src":"2247:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2246:14:183"},"returnParameters":{"id":104041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104040,"mutability":"mutable","name":"timestamp_","nameLocation":"2294:10:183","nodeType":"VariableDeclaration","scope":104044,"src":"2284:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104039,"nodeType":"UserDefinedTypeName","pathNode":{"id":104038,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"2284:9:183"},"referencedDeclaration":104158,"src":"2284:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2283:22:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104055,"nodeType":"FunctionDefinition","src":"2753:131:183","nodes":[],"body":{"id":104054,"nodeType":"Block","src":"2819:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2838:40:183","statements":[{"nodeType":"YulAssignment","src":"2852:16:183","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2862:6:183"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"2852:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104048,"isOffset":false,"isSlot":false,"src":"2862:6:183","valueSize":1},{"declaration":104051,"isOffset":false,"isSlot":false,"src":"2852:6:183","valueSize":1}],"id":104053,"nodeType":"InlineAssembly","src":"2829:49:183"}]},"documentation":{"id":104045,"nodeType":"StructuredDocumentation","src":"2534:214:183","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2762:3:183","parameters":{"id":104049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104048,"mutability":"mutable","name":"_clock","nameLocation":"2772:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2766:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"},"typeName":{"id":104047,"nodeType":"UserDefinedTypeName","pathNode":{"id":104046,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":104004,"src":"2766:5:183"},"referencedDeclaration":104004,"src":"2766:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$104004","typeString":"Clock"}},"visibility":"internal"}],"src":"2765:14:183"},"returnParameters":{"id":104052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104051,"mutability":"mutable","name":"clock_","nameLocation":"2811:6:183","nodeType":"VariableDeclaration","scope":104055,"src":"2803:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":104050,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:183","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2802:16:183"},"scope":104056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":104005,"nodeType":"StructuredDocumentation","src":"960:106:183","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[104056],"name":"LibClock","nameLocation":"1074:8:183","scope":104202,"usedErrors":[]},{"id":104058,"nodeType":"UserDefinedValueTypeDefinition","src":"3429:23:183","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"3434:6:183","underlyingType":{"id":104057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104094,"nodeType":"ContractDefinition","src":"3540:1214:183","nodes":[{"id":104076,"nodeType":"FunctionDefinition","src":"3818:294:183","nodes":[],"body":{"id":104075,"nodeType":"Block","src":"3991:121:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4010:96:183","statements":[{"nodeType":"YulAssignment","src":"4024:72:183","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4045:3:183","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"4050:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4041:3:183"},"nodeType":"YulFunctionCall","src":"4041:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4066:3:183","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"4071:10:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4062:3:183"},"nodeType":"YulFunctionCall","src":"4062:20:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4038:2:183"},"nodeType":"YulFunctionCall","src":"4038:45:183"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"4085:10:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4035:2:183"},"nodeType":"YulFunctionCall","src":"4035:61:183"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"4024:7:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104068,"isOffset":false,"isSlot":false,"src":"4085:10:183","valueSize":1},{"declaration":104063,"isOffset":false,"isSlot":false,"src":"4050:9:183","valueSize":1},{"declaration":104066,"isOffset":false,"isSlot":false,"src":"4071:10:183","valueSize":1},{"declaration":104072,"isOffset":false,"isSlot":false,"src":"4024:7:183","valueSize":1}],"id":104074,"nodeType":"InlineAssembly","src":"4001:105:183"}]},"documentation":{"id":104060,"nodeType":"StructuredDocumentation","src":"3564:249:183","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"3827:4:183","parameters":{"id":104069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104063,"mutability":"mutable","name":"_gameType","nameLocation":"3850:9:183","nodeType":"VariableDeclaration","scope":104076,"src":"3841:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104062,"nodeType":"UserDefinedTypeName","pathNode":{"id":104061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"3841:8:183"},"referencedDeclaration":104188,"src":"3841:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104066,"mutability":"mutable","name":"_timestamp","nameLocation":"3879:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3869:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104065,"nodeType":"UserDefinedTypeName","pathNode":{"id":104064,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"3869:9:183"},"referencedDeclaration":104158,"src":"3869:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104068,"mutability":"mutable","name":"_gameProxy","nameLocation":"3907:10:183","nodeType":"VariableDeclaration","scope":104076,"src":"3899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104067,"name":"address","nodeType":"ElementaryTypeName","src":"3899:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3831:92:183"},"returnParameters":{"id":104073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104072,"mutability":"mutable","name":"gameId_","nameLocation":"3978:7:183","nodeType":"VariableDeclaration","scope":104076,"src":"3971:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104071,"nodeType":"UserDefinedTypeName","pathNode":{"id":104070,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"3971:6:183"},"referencedDeclaration":104058,"src":"3971:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"3970:16:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104093,"nodeType":"FunctionDefinition","src":"4376:376:183","nodes":[],"body":{"id":104092,"nodeType":"Block","src":"4521:231:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4540:206:183","statements":[{"nodeType":"YulAssignment","src":"4554:30:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4571:3:183","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4576:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:183"},"nodeType":"YulFunctionCall","src":"4567:17:183"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"4554:9:183"}]},{"nodeType":"YulAssignment","src":"4597:56:183","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4619:3:183","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"4624:7:183"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4615:3:183"},"nodeType":"YulFunctionCall","src":"4615:17:183"},{"kind":"number","nodeType":"YulLiteral","src":"4634:18:183","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4611:3:183"},"nodeType":"YulFunctionCall","src":"4611:42:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"4597:10:183"}]},{"nodeType":"YulAssignment","src":"4666:70:183","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"4684:7:183"},{"kind":"number","nodeType":"YulLiteral","src":"4693:42:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4680:3:183"},"nodeType":"YulFunctionCall","src":"4680:56:183"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"4666:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4576:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4624:7:183","valueSize":1},{"declaration":104080,"isOffset":false,"isSlot":false,"src":"4684:7:183","valueSize":1},{"declaration":104089,"isOffset":false,"isSlot":false,"src":"4666:10:183","valueSize":1},{"declaration":104084,"isOffset":false,"isSlot":false,"src":"4554:9:183","valueSize":1},{"declaration":104087,"isOffset":false,"isSlot":false,"src":"4597:10:183","valueSize":1}],"id":104091,"nodeType":"InlineAssembly","src":"4531:215:183"}]},"documentation":{"id":104077,"nodeType":"StructuredDocumentation","src":"4118:253:183","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"4385:6:183","parameters":{"id":104081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104080,"mutability":"mutable","name":"_gameId","nameLocation":"4399:7:183","nodeType":"VariableDeclaration","scope":104093,"src":"4392:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"},"typeName":{"id":104079,"nodeType":"UserDefinedTypeName","pathNode":{"id":104078,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":104058,"src":"4392:6:183"},"referencedDeclaration":104058,"src":"4392:6:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$104058","typeString":"GameId"}},"visibility":"internal"}],"src":"4391:16:183"},"returnParameters":{"id":104090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104084,"mutability":"mutable","name":"gameType_","nameLocation":"4464:9:183","nodeType":"VariableDeclaration","scope":104093,"src":"4455:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104083,"nodeType":"UserDefinedTypeName","pathNode":{"id":104082,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"4455:8:183"},"referencedDeclaration":104188,"src":"4455:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":104087,"mutability":"mutable","name":"timestamp_","nameLocation":"4485:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4475:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104086,"nodeType":"UserDefinedTypeName","pathNode":{"id":104085,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"4475:9:183"},"referencedDeclaration":104158,"src":"4475:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":104089,"mutability":"mutable","name":"gameProxy_","nameLocation":"4505:10:183","nodeType":"VariableDeclaration","scope":104093,"src":"4497:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104088,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4454:62:183"},"scope":104094,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":104059,"nodeType":"StructuredDocumentation","src":"3454:86:183","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[104094],"name":"LibGameId","nameLocation":"3548:9:183","scope":104202,"usedErrors":[]},{"id":104096,"nodeType":"UserDefinedValueTypeDefinition","src":"4850:22:183","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"4855:5:183","underlyingType":{"id":104095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4864:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104126,"nodeType":"ContractDefinition","src":"4980:1089:183","nodes":[{"id":104108,"nodeType":"FunctionDefinition","src":"5222:131:183","nodes":[],"body":{"id":104107,"nodeType":"Block","src":"5288:65:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5307:40:183","statements":[{"nodeType":"YulAssignment","src":"5321:16:183","value":{"name":"_claim","nodeType":"YulIdentifier","src":"5331:6:183"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"5321:6:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104101,"isOffset":false,"isSlot":false,"src":"5331:6:183","valueSize":1},{"declaration":104104,"isOffset":false,"isSlot":false,"src":"5321:6:183","valueSize":1}],"id":104106,"nodeType":"InlineAssembly","src":"5298:49:183"}]},"documentation":{"id":104098,"nodeType":"StructuredDocumentation","src":"5003:214:183","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"5231:3:183","parameters":{"id":104102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104101,"mutability":"mutable","name":"_claim","nameLocation":"5241:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5235:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104100,"nodeType":"UserDefinedTypeName","pathNode":{"id":104099,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5235:5:183"},"referencedDeclaration":104096,"src":"5235:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"}],"src":"5234:14:183"},"returnParameters":{"id":104105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104104,"mutability":"mutable","name":"claim_","nameLocation":"5280:6:183","nodeType":"VariableDeclaration","scope":104108,"src":"5272:14:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5272:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5271:16:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":104125,"nodeType":"FunctionDefinition","src":"5663:404:183","nodes":[],"body":{"id":104124,"nodeType":"Block","src":"5842:225:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5861:200:183","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5882:4:183","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"5888:6:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:183"},"nodeType":"YulFunctionCall","src":"5875:20:183"},"nodeType":"YulExpressionStatement","src":"5875:20:183"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5915:4:183","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5928:3:183","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"5933:9:183"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5924:3:183"},"nodeType":"YulFunctionCall","src":"5924:19:183"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5949:34:183","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"5985:15:183"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5945:3:183"},"nodeType":"YulFunctionCall","src":"5945:56:183"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5921:2:183"},"nodeType":"YulFunctionCall","src":"5921:81:183"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5908:6:183"},"nodeType":"YulFunctionCall","src":"5908:95:183"},"nodeType":"YulExpressionStatement","src":"5908:95:183"},{"nodeType":"YulAssignment","src":"6016:35:183","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:4:183","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6046:4:183","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6030:9:183"},"nodeType":"YulFunctionCall","src":"6030:21:183"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"6016:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104117,"isOffset":false,"isSlot":false,"src":"5985:15:183","valueSize":1},{"declaration":104112,"isOffset":false,"isSlot":false,"src":"5888:6:183","valueSize":1},{"declaration":104115,"isOffset":false,"isSlot":false,"src":"5933:9:183","valueSize":1},{"declaration":104121,"isOffset":false,"isSlot":false,"src":"6016:10:183","valueSize":1}],"id":104123,"nodeType":"InlineAssembly","src":"5852:209:183"}]},"documentation":{"id":104109,"nodeType":"StructuredDocumentation","src":"5359:299:183","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"5672:12:183","parameters":{"id":104118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104112,"mutability":"mutable","name":"_claim","nameLocation":"5700:6:183","nodeType":"VariableDeclaration","scope":104125,"src":"5694:12:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"},"typeName":{"id":104111,"nodeType":"UserDefinedTypeName","pathNode":{"id":104110,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":104096,"src":"5694:5:183"},"referencedDeclaration":104096,"src":"5694:5:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$104096","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":104115,"mutability":"mutable","name":"_position","nameLocation":"5725:9:183","nodeType":"VariableDeclaration","scope":104125,"src":"5716:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"},"typeName":{"id":104114,"nodeType":"UserDefinedTypeName","pathNode":{"id":104113,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103754,"src":"5716:8:183"},"referencedDeclaration":103754,"src":"5716:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103754","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":104117,"mutability":"mutable","name":"_challengeIndex","nameLocation":"5752:15:183","nodeType":"VariableDeclaration","scope":104125,"src":"5744:23:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104116,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:183","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5684:89:183"},"returnParameters":{"id":104122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104121,"mutability":"mutable","name":"claimHash_","nameLocation":"5826:10:183","nodeType":"VariableDeclaration","scope":104125,"src":"5821:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104120,"nodeType":"UserDefinedTypeName","pathNode":{"id":104119,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"5821:4:183"},"referencedDeclaration":104143,"src":"5821:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"5820:17:183"},"scope":104126,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":104097,"nodeType":"StructuredDocumentation","src":"4874:106:183","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[104126],"name":"LibClaim","nameLocation":"4988:8:183","scope":104202,"usedErrors":[]},{"id":104128,"nodeType":"UserDefinedValueTypeDefinition","src":"6133:24:183","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"6138:8:183","underlyingType":{"id":104127,"name":"uint64","nodeType":"ElementaryTypeName","src":"6150:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104141,"nodeType":"ContractDefinition","src":"6271:405:183","nodes":[{"id":104140,"nodeType":"FunctionDefinition","src":"6529:145:183","nodes":[],"body":{"id":104139,"nodeType":"Block","src":"6603:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6622:46:183","statements":[{"nodeType":"YulAssignment","src":"6636:22:183","value":{"name":"_duration","nodeType":"YulIdentifier","src":"6649:9:183"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"6636:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104133,"isOffset":false,"isSlot":false,"src":"6649:9:183","valueSize":1},{"declaration":104136,"isOffset":false,"isSlot":false,"src":"6636:9:183","valueSize":1}],"id":104138,"nodeType":"InlineAssembly","src":"6613:55:183"}]},"documentation":{"id":104130,"nodeType":"StructuredDocumentation","src":"6297:227:183","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"6538:3:183","parameters":{"id":104134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104133,"mutability":"mutable","name":"_duration","nameLocation":"6551:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6542:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"},"typeName":{"id":104132,"nodeType":"UserDefinedTypeName","pathNode":{"id":104131,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":104128,"src":"6542:8:183"},"referencedDeclaration":104128,"src":"6542:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$104128","typeString":"Duration"}},"visibility":"internal"}],"src":"6541:20:183"},"returnParameters":{"id":104137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104136,"mutability":"mutable","name":"duration_","nameLocation":"6592:9:183","nodeType":"VariableDeclaration","scope":104140,"src":"6585:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104135,"name":"uint64","nodeType":"ElementaryTypeName","src":"6585:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6584:18:183"},"scope":104141,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":104129,"nodeType":"StructuredDocumentation","src":"6159:112:183","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[104141],"name":"LibDuration","nameLocation":"6279:11:183","scope":104202,"usedErrors":[]},{"id":104143,"nodeType":"UserDefinedValueTypeDefinition","src":"6724:21:183","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"6729:4:183","underlyingType":{"id":104142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":104156,"nodeType":"ContractDefinition","src":"6851:364:183","nodes":[{"id":104155,"nodeType":"FunctionDefinition","src":"7087:126:183","nodes":[],"body":{"id":104154,"nodeType":"Block","src":"7150:63:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7169:38:183","statements":[{"nodeType":"YulAssignment","src":"7183:14:183","value":{"name":"_hash","nodeType":"YulIdentifier","src":"7192:5:183"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"7183:5:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104148,"isOffset":false,"isSlot":false,"src":"7192:5:183","valueSize":1},{"declaration":104151,"isOffset":false,"isSlot":false,"src":"7183:5:183","valueSize":1}],"id":104153,"nodeType":"InlineAssembly","src":"7160:47:183"}]},"documentation":{"id":104145,"nodeType":"StructuredDocumentation","src":"6873:209:183","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7096:3:183","parameters":{"id":104149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104148,"mutability":"mutable","name":"_hash","nameLocation":"7105:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7100:10:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"},"typeName":{"id":104147,"nodeType":"UserDefinedTypeName","pathNode":{"id":104146,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":104143,"src":"7100:4:183"},"referencedDeclaration":104143,"src":"7100:4:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$104143","typeString":"Hash"}},"visibility":"internal"}],"src":"7099:12:183"},"returnParameters":{"id":104152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104151,"mutability":"mutable","name":"hash_","nameLocation":"7143:5:183","nodeType":"VariableDeclaration","scope":104155,"src":"7135:13:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":104150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7135:7:183","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:15:183"},"scope":104156,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":104144,"nodeType":"StructuredDocumentation","src":"6747:104:183","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[104156],"name":"LibHash","nameLocation":"6859:7:183","scope":104202,"usedErrors":[]},{"id":104158,"nodeType":"UserDefinedValueTypeDefinition","src":"7257:25:183","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"7262:9:183","underlyingType":{"id":104157,"name":"uint64","nodeType":"ElementaryTypeName","src":"7275:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":104171,"nodeType":"ContractDefinition","src":"7398:416:183","nodes":[{"id":104170,"nodeType":"FunctionDefinition","src":"7662:150:183","nodes":[],"body":{"id":104169,"nodeType":"Block","src":"7739:73:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7758:48:183","statements":[{"nodeType":"YulAssignment","src":"7772:24:183","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"7786:10:183"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"7772:10:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104163,"isOffset":false,"isSlot":false,"src":"7786:10:183","valueSize":1},{"declaration":104166,"isOffset":false,"isSlot":false,"src":"7772:10:183","valueSize":1}],"id":104168,"nodeType":"InlineAssembly","src":"7749:57:183"}]},"documentation":{"id":104160,"nodeType":"StructuredDocumentation","src":"7425:232:183","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"7671:3:183","parameters":{"id":104164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104163,"mutability":"mutable","name":"_timestamp","nameLocation":"7685:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7675:20:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"},"typeName":{"id":104162,"nodeType":"UserDefinedTypeName","pathNode":{"id":104161,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":104158,"src":"7675:9:183"},"referencedDeclaration":104158,"src":"7675:9:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$104158","typeString":"Timestamp"}},"visibility":"internal"}],"src":"7674:22:183"},"returnParameters":{"id":104167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104166,"mutability":"mutable","name":"timestamp_","nameLocation":"7727:10:183","nodeType":"VariableDeclaration","scope":104170,"src":"7720:17:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":104165,"name":"uint64","nodeType":"ElementaryTypeName","src":"7720:6:183","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7719:19:183"},"scope":104171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":104159,"nodeType":"StructuredDocumentation","src":"7284:114:183","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[104171],"name":"LibTimestamp","nameLocation":"7406:12:183","scope":104202,"usedErrors":[]},{"id":104173,"nodeType":"UserDefinedValueTypeDefinition","src":"7882:23:183","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"7887:8:183","underlyingType":{"id":104172,"name":"uint8","nodeType":"ElementaryTypeName","src":"7899:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":104186,"nodeType":"ContractDefinition","src":"8019:402:183","nodes":[{"id":104185,"nodeType":"FunctionDefinition","src":"8275:144:183","nodes":[],"body":{"id":104184,"nodeType":"Block","src":"8348:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8367:46:183","statements":[{"nodeType":"YulAssignment","src":"8381:22:183","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"8394:9:183"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"8381:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104178,"isOffset":false,"isSlot":false,"src":"8394:9:183","valueSize":1},{"declaration":104181,"isOffset":false,"isSlot":false,"src":"8381:9:183","valueSize":1}],"id":104183,"nodeType":"InlineAssembly","src":"8358:55:183"}]},"documentation":{"id":104175,"nodeType":"StructuredDocumentation","src":"8045:225:183","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8284:3:183","parameters":{"id":104179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104178,"mutability":"mutable","name":"_vmstatus","nameLocation":"8297:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8288:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"},"typeName":{"id":104177,"nodeType":"UserDefinedTypeName","pathNode":{"id":104176,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":104173,"src":"8288:8:183"},"referencedDeclaration":104173,"src":"8288:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$104173","typeString":"VMStatus"}},"visibility":"internal"}],"src":"8287:20:183"},"returnParameters":{"id":104182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104181,"mutability":"mutable","name":"vmstatus_","nameLocation":"8337:9:183","nodeType":"VariableDeclaration","scope":104185,"src":"8331:15:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":104180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8331:5:183","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8330:17:183"},"scope":104186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":104174,"nodeType":"StructuredDocumentation","src":"7907:112:183","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[104186],"name":"LibVMStatus","nameLocation":"8027:11:183","scope":104202,"usedErrors":[]},{"id":104188,"nodeType":"UserDefinedValueTypeDefinition","src":"8490:24:183","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"8495:8:183","underlyingType":{"id":104187,"name":"uint32","nodeType":"ElementaryTypeName","src":"8507:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":104201,"nodeType":"ContractDefinition","src":"8628:405:183","nodes":[{"id":104200,"nodeType":"FunctionDefinition","src":"8886:145:183","nodes":[],"body":{"id":104199,"nodeType":"Block","src":"8960:71:183","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8979:46:183","statements":[{"nodeType":"YulAssignment","src":"8993:22:183","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"9006:9:183"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"8993:9:183"}]}]},"evmVersion":"london","externalReferences":[{"declaration":104193,"isOffset":false,"isSlot":false,"src":"9006:9:183","valueSize":1},{"declaration":104196,"isOffset":false,"isSlot":false,"src":"8993:9:183","valueSize":1}],"id":104198,"nodeType":"InlineAssembly","src":"8970:55:183"}]},"documentation":{"id":104190,"nodeType":"StructuredDocumentation","src":"8654:227:183","text":"@notice Get the value of a `GameType` type in the form of the underlying uint32.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"8895:3:183","parameters":{"id":104194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104193,"mutability":"mutable","name":"_gametype","nameLocation":"8908:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8899:18:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"},"typeName":{"id":104192,"nodeType":"UserDefinedTypeName","pathNode":{"id":104191,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":104188,"src":"8899:8:183"},"referencedDeclaration":104188,"src":"8899:8:183","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$104188","typeString":"GameType"}},"visibility":"internal"}],"src":"8898:20:183"},"returnParameters":{"id":104197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104196,"mutability":"mutable","name":"gametype_","nameLocation":"8949:9:183","nodeType":"VariableDeclaration","scope":104200,"src":"8942:16:183","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104195,"name":"uint32","nodeType":"ElementaryTypeName","src":"8942:6:183","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8941:18:183"},"scope":104201,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":104189,"nodeType":"StructuredDocumentation","src":"8516:112:183","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[104201],"name":"LibGameType","nameLocation":"8636:11:183","scope":104202,"usedErrors":[]}],"license":"MIT"},"id":183}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"initialize","inputs":[{"name":"_init","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slot21Init","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610222806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:313:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:313:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:243;;;;;;:::i;:::-;;:::i;:::-;;513:55;;550:18;513:55;;;;;434:25:350;;;422:2;407:18;513:55:313;;;;;;;575:243;4418:13:25;;629:5:313;;4418:13:25;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:25;;:22;;;;:12;;:22;4417:40;4409:99;;;;;;;672:2:350;4409:99:25;;;654:21:350;711:2;691:18;;;684:30;750:34;730:18;;;723:62;821:16;801:18;;;794:44;855:19;;4409:99:25;;;;;;;;4518:12;:22;;550:18:313::1;792:6;:19:::0;4550:20:25;;4518:22;;;4550:20;;;4518:22;4550:20;;4591:21;;;;4627:20;;1027:36:350;;;4627:20:25;;1015:2:350;1000:18;4627:20:25;;;;;;;575:243:313;;:::o;14:269:350:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:350:o","linkReferences":{}},"methodIdentifiers":{"initialize(uint8)":"4351e6b6","slot21Init()":"942d3413"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_init\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot21Init\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing a future upgrade beyond the current implementations.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NextImpl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/NextImpl.sol\":\"NextImpl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"test/mocks/NextImpl.sol\":{\"keccak256\":\"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2\",\"dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint8","name":"_init","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"slot21Init","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/NextImpl.sol":"NextImpl"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"test/mocks/NextImpl.sol":{"keccak256":"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510","urls":["bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2","dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":191670,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot1","offset":0,"slot":"1","type":"t_bytes32"},{"astId":191674,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"__gap","offset":0,"slot":"2","type":"t_array(t_bytes32)19_storage"},{"astId":191676,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot21","offset":0,"slot":"21","type":"t_bytes32"}],"types":{"t_array(t_bytes32)19_storage":{"encoding":"inplace","label":"bytes32[19]","numberOfBytes":"608","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Used for testing a future upgrade beyond the current implementations.","title":"NextImpl"},"id":313}
{"abi":[{"type":"function","name":"initialize","inputs":[{"name":"_init","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slot21Init","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610222806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:344:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:344:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:243;;;;;;:::i;:::-;;:::i;:::-;;513:55;;550:18;513:55;;;;;434:25:382;;;422:2;407:18;513:55:344;;;;;;;575:243;4418:13:27;;629:5:344;;4418:13:27;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:27;;:22;;;;:12;;:22;4417:40;4409:99;;;;;;;672:2:382;4409:99:27;;;654:21:382;711:2;691:18;;;684:30;750:34;730:18;;;723:62;821:16;801:18;;;794:44;855:19;;4409:99:27;;;;;;;;4518:12;:22;;550:18:344::1;792:6;:19:::0;4550:20:27;;4518:22;;;4550:20;;;4518:22;4550:20;;4591:21;;;;4627:20;;1027:36:382;;;4627:20:27;;1015:2:382;1000:18;4627:20:27;;;;;;;575:243:344;;:::o;14:269:382:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:382:o","linkReferences":{}},"methodIdentifiers":{"initialize(uint8)":"4351e6b6","slot21Init()":"942d3413"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_init\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot21Init\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing a future upgrade beyond the current implementations.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NextImpl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/NextImpl.sol\":\"NextImpl\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"test/mocks/NextImpl.sol\":{\"keccak256\":\"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2\",\"dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint8","name":"_init","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"slot21Init","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/NextImpl.sol":"NextImpl"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"test/mocks/NextImpl.sol":{"keccak256":"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510","urls":["bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2","dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":220736,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot1","offset":0,"slot":"1","type":"t_bytes32"},{"astId":220740,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"__gap","offset":0,"slot":"2","type":"t_array(t_bytes32)19_storage"},{"astId":220742,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot21","offset":0,"slot":"21","type":"t_bytes32"}],"types":{"t_array(t_bytes32)19_storage":{"encoding":"inplace","label":"bytes32[19]","numberOfBytes":"608","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Used for testing a future upgrade beyond the current implementations.","title":"NextImpl"},"ast":{"absolutePath":"test/mocks/NextImpl.sol","id":220763,"exportedSymbols":{"Initializable":[47257],"NextImpl":[220762]},"nodeType":"SourceUnit","src":"32:789:344","nodes":[{"id":220729,"nodeType":"PragmaDirective","src":"32:23:344","nodes":[],"literals":["solidity","0.8",".15"]},{"id":220731,"nodeType":"ImportDirective","src":"57:98:344","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":220763,"sourceUnit":47258,"symbolAliases":[{"foreign":{"id":220730,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47257,"src":"66:13:344","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220762,"nodeType":"ContractDefinition","src":"362:458:344","nodes":[{"id":220736,"nodeType":"VariableDeclaration","src":"451:13:344","nodes":[],"constant":false,"mutability":"mutable","name":"slot1","nameLocation":"459:5:344","scope":220762,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"451:7:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":220740,"nodeType":"VariableDeclaration","src":"470:17:344","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"482:5:344","scope":220762,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$19_storage","typeString":"bytes32[19]"},"typeName":{"baseType":{"id":220737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"470:7:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":220739,"length":{"hexValue":"3139","id":220738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"478:2:344","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"nodeType":"ArrayTypeName","src":"470:11:344","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$19_storage_ptr","typeString":"bytes32[19]"}},"visibility":"internal"},{"id":220742,"nodeType":"VariableDeclaration","src":"493:14:344","nodes":[],"constant":false,"mutability":"mutable","name":"slot21","nameLocation":"501:6:344","scope":220762,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":220748,"nodeType":"VariableDeclaration","src":"513:55:344","nodes":[],"constant":true,"functionSelector":"942d3413","mutability":"constant","name":"slot21Init","nameLocation":"537:10:344","scope":220762,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"513:7:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"1337","id":220746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"558:9:344","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":220745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"550:7:344","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":220744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"550:7:344","typeDescriptions":{}}},"id":220747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"550:18:344","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":220761,"nodeType":"FunctionDefinition","src":"575:243:344","nodes":[],"body":{"id":220760,"nodeType":"Block","src":"636:182:344","nodes":[],"statements":[{"expression":{"id":220758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":220756,"name":"slot21","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220742,"src":"792:6:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":220757,"name":"slot21Init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220748,"src":"801:10:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"792:19:344","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":220759,"nodeType":"ExpressionStatement","src":"792:19:344"}]},"functionSelector":"4351e6b6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":220753,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220750,"src":"629:5:344","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":220754,"kind":"modifierInvocation","modifierName":{"id":220752,"name":"reinitializer","nodeType":"IdentifierPath","referencedDeclaration":47210,"src":"615:13:344"},"nodeType":"ModifierInvocation","src":"615:20:344"}],"name":"initialize","nameLocation":"584:10:344","parameters":{"id":220751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220750,"mutability":"mutable","name":"_init","nameLocation":"601:5:344","nodeType":"VariableDeclaration","scope":220761,"src":"595:11:344","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":220749,"name":"uint8","nodeType":"ElementaryTypeName","src":"595:5:344","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"594:13:344"},"returnParameters":{"id":220755,"nodeType":"ParameterList","parameters":[],"src":"636:0:344"},"scope":220762,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":220733,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"383:13:344"},"id":220734,"nodeType":"InheritanceSpecifier","src":"383:13:344"}],"canonicalName":"NextImpl","contractDependencies":[],"contractKind":"contract","documentation":{"id":220732,"nodeType":"StructuredDocumentation","src":"157:99:344","text":"@title NextImpl\n @dev Used for testing a future upgrade beyond the current implementations."},"fullyImplemented":true,"linearizedBaseContracts":[220762,47257],"name":"NextImpl","nameLocation":"371:8:344","scope":220763,"usedErrors":[]}],"license":"MIT"},"id":344}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:217:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;185:246:217;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:217:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"OptimistConstants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for storing Optimist related constants that are shared in multiple contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":\"OptimistConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/libraries/OptimistConstants.sol":"OptimistConstants"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for storing Optimist related constants that are shared in multiple contracts."},"devdoc":{"version":1,"kind":"dev","title":"OptimistConstants"},"id":217}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:233:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;185:246:233;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:233:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"OptimistConstants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for storing Optimist related constants that are shared in multiple contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":\"OptimistConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/libraries/OptimistConstants.sol":"OptimistConstants"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for storing Optimist related constants that are shared in multiple contracts."},"devdoc":{"version":1,"kind":"dev","title":"OptimistConstants"},"ast":{"absolutePath":"src/periphery/op-nft/libraries/OptimistConstants.sol","id":112476,"exportedSymbols":{"OptimistConstants":[112475]},"nodeType":"SourceUnit","src":"32:400:233","nodes":[{"id":112466,"nodeType":"PragmaDirective","src":"32:23:233","nodes":[],"literals":["solidity","0.8",".15"]},{"id":112475,"nodeType":"ContractDefinition","src":"185:246:233","nodes":[{"id":112474,"nodeType":"VariableDeclaration","src":"314:114:233","nodes":[],"constant":true,"documentation":{"id":112468,"nodeType":"StructuredDocumentation","src":"217:92:233","text":"@notice Attestation key issued by OptimistInviter allowing the attested account to mint."},"mutability":"constant","name":"OPTIMIST_CAN_MINT_FROM_INVITE_ATTESTATION_KEY","nameLocation":"340:45:233","scope":112475,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":112469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"314:7:233","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7074696d6973742e63616e2d6d696e742d66726f6d2d696e76697465","id":112472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"396:31:233","typeDescriptions":{"typeIdentifier":"t_stringliteral_e36ca07f085876c3aafb3210ed63e326268e1e0da5f31df60d5b064c132175b4","typeString":"literal_string \"optimist.can-mint-from-invite\""},"value":"optimist.can-mint-from-invite"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e36ca07f085876c3aafb3210ed63e326268e1e0da5f31df60d5b064c132175b4","typeString":"literal_string \"optimist.can-mint-from-invite\""}],"id":112471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"388:7:233","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":112470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"388:7:233","typeDescriptions":{}}},"id":112473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"388:40:233","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"OptimistConstants","contractDependencies":[],"contractKind":"library","documentation":{"id":112467,"nodeType":"StructuredDocumentation","src":"57:128:233","text":"@title OptimistConstants\n @notice Library for storing Optimist related constants that are shared in multiple contracts."},"fullyImplemented":true,"linearizedBaseContracts":[112475],"name":"OptimistConstants","nameLocation":"193:17:233","scope":112476,"usedErrors":[]}],"license":"MIT"},"id":233}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":"OwnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":45185,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":45305,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"id":24}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":"OwnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":48644,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":46985,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":47105,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","id":47107,"exportedSymbols":{"AddressUpgradeable":[48603],"ContextUpgradeable":[48645],"Initializable":[47257],"OwnableUpgradeable":[47106]},"nodeType":"SourceUnit","src":"102:3052:26","nodes":[{"id":46976,"nodeType":"PragmaDirective","src":"102:23:26","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46977,"nodeType":"ImportDirective","src":"127:41:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","nameLocation":"-1:-1:-1","scope":47107,"sourceUnit":48646,"symbolAliases":[],"unitAlias":""},{"id":46978,"nodeType":"ImportDirective","src":"169:42:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":47107,"sourceUnit":47258,"symbolAliases":[],"unitAlias":""},{"id":47106,"nodeType":"ContractDefinition","src":"708:2445:26","nodes":[{"id":46985,"nodeType":"VariableDeclaration","src":"788:22:26","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"804:6:26","scope":47106,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46984,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":46991,"nodeType":"EventDefinition","src":"817:84:26","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"823:20:26","parameters":{"id":46990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46987,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:26","nodeType":"VariableDeclaration","scope":46991,"src":"844:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46986,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46989,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:26","nodeType":"VariableDeclaration","scope":46991,"src":"875:24:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46988,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:26"}},{"id":47001,"nodeType":"FunctionDefinition","src":"1003:95:26","nodes":[],"body":{"id":47000,"nodeType":"Block","src":"1055:43:26","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46997,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1065:24:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":46998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1065:26:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46999,"nodeType":"ExpressionStatement","src":"1065:26:26"}]},"documentation":{"id":46992,"nodeType":"StructuredDocumentation","src":"907:91:26","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"function","modifiers":[{"id":46995,"kind":"modifierInvocation","modifierName":{"id":46994,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"1038:16:26"},"nodeType":"ModifierInvocation","src":"1038:16:26"}],"name":"__Ownable_init","nameLocation":"1012:14:26","parameters":{"id":46993,"nodeType":"ParameterList","parameters":[],"src":"1026:2:26"},"returnParameters":{"id":46996,"nodeType":"ParameterList","parameters":[],"src":"1055:0:26"},"scope":47106,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47012,"nodeType":"FunctionDefinition","src":"1104:111:26","nodes":[],"body":{"id":47011,"nodeType":"Block","src":"1166:49:26","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":47007,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48630,"src":"1195:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1195:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47006,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47100,"src":"1176:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:32:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47010,"nodeType":"ExpressionStatement","src":"1176:32:26"}]},"implemented":true,"kind":"function","modifiers":[{"id":47004,"kind":"modifierInvocation","modifierName":{"id":47003,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47220,"src":"1149:16:26"},"nodeType":"ModifierInvocation","src":"1149:16:26"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:26","parameters":{"id":47002,"nodeType":"ParameterList","parameters":[],"src":"1137:2:26"},"returnParameters":{"id":47005,"nodeType":"ParameterList","parameters":[],"src":"1166:0:26"},"scope":47106,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47020,"nodeType":"ModifierDefinition","src":"1303:62:26","nodes":[],"body":{"id":47019,"nodeType":"Block","src":"1324:41:26","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47015,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47043,"src":"1334:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1334:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47017,"nodeType":"ExpressionStatement","src":"1334:13:26"},{"id":47018,"nodeType":"PlaceholderStatement","src":"1357:1:26"}]},"documentation":{"id":47013,"nodeType":"StructuredDocumentation","src":"1221:77:26","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1312:9:26","parameters":{"id":47014,"nodeType":"ParameterList","parameters":[],"src":"1321:2:26"},"virtual":false,"visibility":"internal"},{"id":47029,"nodeType":"FunctionDefinition","src":"1441:85:26","nodes":[],"body":{"id":47028,"nodeType":"Block","src":"1496:30:26","nodes":[],"statements":[{"expression":{"id":47026,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"1513:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47025,"id":47027,"nodeType":"Return","src":"1506:13:26"}]},"documentation":{"id":47021,"nodeType":"StructuredDocumentation","src":"1371:65:26","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:26","parameters":{"id":47022,"nodeType":"ParameterList","parameters":[],"src":"1455:2:26"},"returnParameters":{"id":47025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47029,"src":"1487:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47023,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:26"},"scope":47106,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47043,"nodeType":"FunctionDefinition","src":"1599:130:26","nodes":[],"body":{"id":47042,"nodeType":"Block","src":"1644:85:26","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47034,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47029,"src":"1662:5:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1662:7:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47036,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48630,"src":"1673:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1673:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":47039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":47033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:68:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47041,"nodeType":"ExpressionStatement","src":"1654:68:26"}]},"documentation":{"id":47030,"nodeType":"StructuredDocumentation","src":"1532:62:26","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:26","parameters":{"id":47031,"nodeType":"ParameterList","parameters":[],"src":"1619:2:26"},"returnParameters":{"id":47032,"nodeType":"ParameterList","parameters":[],"src":"1644:0:26"},"scope":47106,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47057,"nodeType":"FunctionDefinition","src":"2071:101:26","nodes":[],"body":{"id":47056,"nodeType":"Block","src":"2125:47:26","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":47052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47050,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:26","typeDescriptions":{}}},"id":47053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2154:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47049,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47100,"src":"2135:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2135:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47055,"nodeType":"ExpressionStatement","src":"2135:30:26"}]},"documentation":{"id":47044,"nodeType":"StructuredDocumentation","src":"1735:331:26","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":47047,"kind":"modifierInvocation","modifierName":{"id":47046,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47020,"src":"2115:9:26"},"nodeType":"ModifierInvocation","src":"2115:9:26"}],"name":"renounceOwnership","nameLocation":"2080:17:26","parameters":{"id":47045,"nodeType":"ParameterList","parameters":[],"src":"2097:2:26"},"returnParameters":{"id":47048,"nodeType":"ParameterList","parameters":[],"src":"2125:0:26"},"scope":47106,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47080,"nodeType":"FunctionDefinition","src":"2321:198:26","nodes":[],"body":{"id":47079,"nodeType":"Block","src":"2391:128:26","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47066,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47060,"src":"2409:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47067,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:26","typeDescriptions":{}}},"id":47070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2421:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2409:22:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":47072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2433:40:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":47065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2401:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2401:73:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47074,"nodeType":"ExpressionStatement","src":"2401:73:26"},{"expression":{"arguments":[{"id":47076,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47060,"src":"2503:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47075,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47100,"src":"2484:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2484:28:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47078,"nodeType":"ExpressionStatement","src":"2484:28:26"}]},"documentation":{"id":47058,"nodeType":"StructuredDocumentation","src":"2178:138:26","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":47063,"kind":"modifierInvocation","modifierName":{"id":47062,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47020,"src":"2381:9:26"},"nodeType":"ModifierInvocation","src":"2381:9:26"}],"name":"transferOwnership","nameLocation":"2330:17:26","parameters":{"id":47061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47060,"mutability":"mutable","name":"newOwner","nameLocation":"2356:8:26","nodeType":"VariableDeclaration","scope":47080,"src":"2348:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47059,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:18:26"},"returnParameters":{"id":47064,"nodeType":"ParameterList","parameters":[],"src":"2391:0:26"},"scope":47106,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47100,"nodeType":"FunctionDefinition","src":"2673:187:26","nodes":[],"body":{"id":47099,"nodeType":"Block","src":"2736:124:26","nodes":[],"statements":[{"assignments":[47087],"declarations":[{"constant":false,"id":47087,"mutability":"mutable","name":"oldOwner","nameLocation":"2754:8:26","nodeType":"VariableDeclaration","scope":47099,"src":"2746:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47086,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47089,"initialValue":{"id":47088,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"2765:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2746:25:26"},{"expression":{"id":47092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47090,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"2781:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47091,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47083,"src":"2790:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2781:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47093,"nodeType":"ExpressionStatement","src":"2781:17:26"},{"eventCall":{"arguments":[{"id":47095,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47087,"src":"2834:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47096,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47083,"src":"2844:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47094,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46991,"src":"2813:20:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":47097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2813:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47098,"nodeType":"EmitStatement","src":"2808:45:26"}]},"documentation":{"id":47081,"nodeType":"StructuredDocumentation","src":"2525:143:26","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2682:18:26","parameters":{"id":47084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47083,"mutability":"mutable","name":"newOwner","nameLocation":"2709:8:26","nodeType":"VariableDeclaration","scope":47100,"src":"2701:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47082,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2700:18:26"},"returnParameters":{"id":47085,"nodeType":"ParameterList","parameters":[],"src":"2736:0:26"},"scope":47106,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47105,"nodeType":"VariableDeclaration","src":"3125:25:26","nodes":[],"constant":false,"documentation":{"id":47101,"nodeType":"StructuredDocumentation","src":"2866:254:26","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"3145:5:26","scope":47106,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":47102,"name":"uint256","nodeType":"ElementaryTypeName","src":"3125:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47104,"length":{"hexValue":"3439","id":47103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:2:26","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3125:11:26","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":46980,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47257,"src":"748:13:26"},"id":46981,"nodeType":"InheritanceSpecifier","src":"748:13:26"},{"baseName":{"id":46982,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":48645,"src":"763:18:26"},"id":46983,"nodeType":"InheritanceSpecifier","src":"763:18:26"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":46979,"nodeType":"StructuredDocumentation","src":"213:494:26","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[47106,48645,47257],"name":"OwnableUpgradeable","nameLocation":"726:18:26","scope":47107,"usedErrors":[]}],"license":"MIT"},"id":26}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:152:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:2613:152;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:152:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"PreimageKeyLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Shared utilities for localizing local keys in the preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/PreimageKeyLib.sol\":\"PreimageKeyLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/PreimageKeyLib.sol":"PreimageKeyLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Shared utilities for localizing local keys in the preimage oracle."},"devdoc":{"version":1,"kind":"dev","title":"PreimageKeyLib"},"id":152}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:164:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:2613:164;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:164:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"PreimageKeyLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Shared utilities for localizing local keys in the preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/PreimageKeyLib.sol\":\"PreimageKeyLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/PreimageKeyLib.sol":"PreimageKeyLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Shared utilities for localizing local keys in the preimage oracle."},"devdoc":{"version":1,"kind":"dev","title":"PreimageKeyLib"},"ast":{"absolutePath":"src/cannon/PreimageKeyLib.sol","id":97792,"exportedSymbols":{"PreimageKeyLib":[97791]},"nodeType":"SourceUnit","src":"32:2744:164","nodes":[{"id":97748,"nodeType":"PragmaDirective","src":"32:23:164","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97791,"nodeType":"ContractDefinition","src":"162:2613:164","nodes":[{"id":97768,"nodeType":"FunctionDefinition","src":"552:449:164","nodes":[],"body":{"id":97767,"nodeType":"Block","src":"651:350:164","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"670:221:164","statements":[{"nodeType":"YulAssignment","src":"824:57:164","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"839:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"844:1:164","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"835:3:164"},"nodeType":"YulFunctionCall","src":"835:11:164"},{"arguments":[{"name":"_ident","nodeType":"YulIdentifier","src":"852:6:164"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"868:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"873:4:164","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"864:3:164"},"nodeType":"YulFunctionCall","src":"864:14:164"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"860:3:164"},"nodeType":"YulFunctionCall","src":"860:19:164"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"848:3:164"},"nodeType":"YulFunctionCall","src":"848:32:164"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"832:2:164"},"nodeType":"YulFunctionCall","src":"832:49:164"},"variableNames":[{"name":"key_","nodeType":"YulIdentifier","src":"824:4:164"}]}]},"evmVersion":"london","externalReferences":[{"declaration":97752,"isOffset":false,"isSlot":false,"src":"852:6:164","valueSize":1},{"declaration":97757,"isOffset":false,"isSlot":false,"src":"824:4:164","valueSize":1}],"id":97759,"nodeType":"InlineAssembly","src":"661:230:164"},{"expression":{"id":97765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97760,"name":"key_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97757,"src":"958:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":97762,"name":"key_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97757,"src":"974:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97763,"name":"_localContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97754,"src":"980:13:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":97761,"name":"localize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97780,"src":"965:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":97764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"965:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"958:36:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":97766,"nodeType":"ExpressionStatement","src":"958:36:164"}]},"documentation":{"id":97750,"nodeType":"StructuredDocumentation","src":"191:356:164","text":"@notice Generates a context-specific local key for the given local data identifier.\n @dev See `localize` for a description of the localization operation.\n @param _ident The identifier of the local data. [0, 32) bytes in size.\n @param _localContext The local context for the key.\n @return key_ The context-specific local key."},"implemented":true,"kind":"function","modifiers":[],"name":"localizeIdent","nameLocation":"561:13:164","parameters":{"id":97755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97752,"mutability":"mutable","name":"_ident","nameLocation":"583:6:164","nodeType":"VariableDeclaration","scope":97768,"src":"575:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97751,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97754,"mutability":"mutable","name":"_localContext","nameLocation":"599:13:164","nodeType":"VariableDeclaration","scope":97768,"src":"591:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"591:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"574:39:164"},"returnParameters":{"id":97758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97757,"mutability":"mutable","name":"key_","nameLocation":"645:4:164","nodeType":"VariableDeclaration","scope":97768,"src":"637:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"637:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"636:14:164"},"scope":97791,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":97780,"nodeType":"FunctionDefinition","src":"1455:676:164","nodes":[],"body":{"id":97779,"nodeType":"Block","src":"1556:575:164","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1575:550:164","statements":[{"nodeType":"YulVariableDeclaration","src":"1659:22:164","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1676:4:164","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1670:5:164"},"nodeType":"YulFunctionCall","src":"1670:11:164"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1663:3:164","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1794:1:164","type":"","value":"0"},{"name":"_key","nodeType":"YulIdentifier","src":"1797:4:164"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1787:6:164"},"nodeType":"YulFunctionCall","src":"1787:15:164"},"nodeType":"YulExpressionStatement","src":"1787:15:164"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:4:164","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"1828:6:164"},"nodeType":"YulFunctionCall","src":"1828:8:164"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1815:6:164"},"nodeType":"YulFunctionCall","src":"1815:22:164"},"nodeType":"YulExpressionStatement","src":"1815:22:164"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:4:164","type":"","value":"0x40"},{"name":"_localContext","nodeType":"YulIdentifier","src":"1863:13:164"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:164"},"nodeType":"YulFunctionCall","src":"1850:27:164"},"nodeType":"YulExpressionStatement","src":"1850:27:164"},{"nodeType":"YulAssignment","src":"1959:78:164","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1993:1:164","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1996:4:164","type":"","value":"0x60"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1983:9:164"},"nodeType":"YulFunctionCall","src":"1983:18:164"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2011:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2016:4:164","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2007:3:164"},"nodeType":"YulFunctionCall","src":"2007:14:164"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2003:3:164"},"nodeType":"YulFunctionCall","src":"2003:19:164"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1979:3:164"},"nodeType":"YulFunctionCall","src":"1979:44:164"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2029:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2034:1:164","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2025:3:164"},"nodeType":"YulFunctionCall","src":"2025:11:164"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1976:2:164"},"nodeType":"YulFunctionCall","src":"1976:61:164"},"variableNames":[{"name":"localizedKey_","nodeType":"YulIdentifier","src":"1959:13:164"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2105:4:164","type":"","value":"0x40"},{"name":"ptr","nodeType":"YulIdentifier","src":"2111:3:164"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2098:6:164"},"nodeType":"YulFunctionCall","src":"2098:17:164"},"nodeType":"YulExpressionStatement","src":"2098:17:164"}]},"evmVersion":"london","externalReferences":[{"declaration":97771,"isOffset":false,"isSlot":false,"src":"1797:4:164","valueSize":1},{"declaration":97773,"isOffset":false,"isSlot":false,"src":"1863:13:164","valueSize":1},{"declaration":97776,"isOffset":false,"isSlot":false,"src":"1959:13:164","valueSize":1}],"id":97778,"nodeType":"InlineAssembly","src":"1566:559:164"}]},"documentation":{"id":97769,"nodeType":"StructuredDocumentation","src":"1007:443:164","text":"@notice Localizes a given local data key for the caller's context.\n @dev The localization operation is defined as:\n localize(k) = H(k .. sender .. local_context) & ~(0xFF << 248) | (0x01 << 248)\n where H is the Keccak-256 hash function.\n @param _key The local data key to localize.\n @param _localContext The local context for the key.\n @return localizedKey_ The localized local data key."},"implemented":true,"kind":"function","modifiers":[],"name":"localize","nameLocation":"1464:8:164","parameters":{"id":97774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97771,"mutability":"mutable","name":"_key","nameLocation":"1481:4:164","nodeType":"VariableDeclaration","scope":97780,"src":"1473:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1473:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97773,"mutability":"mutable","name":"_localContext","nameLocation":"1495:13:164","nodeType":"VariableDeclaration","scope":97780,"src":"1487:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1472:37:164"},"returnParameters":{"id":97777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97776,"mutability":"mutable","name":"localizedKey_","nameLocation":"1541:13:164","nodeType":"VariableDeclaration","scope":97780,"src":"1533:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1533:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1532:23:164"},"scope":97791,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":97790,"nodeType":"FunctionDefinition","src":"2293:480:164","nodes":[],"body":{"id":97789,"nodeType":"Block","src":"2384:389:164","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2403:364:164","statements":[{"nodeType":"YulVariableDeclaration","src":"2465:28:164","value":{"arguments":[{"name":"_preimage","nodeType":"YulIdentifier","src":"2483:9:164"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2477:5:164"},"nodeType":"YulFunctionCall","src":"2477:16:164"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"2469:4:164","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2583:46:164","value":{"arguments":[{"arguments":[{"name":"_preimage","nodeType":"YulIdentifier","src":"2606:9:164"},{"kind":"number","nodeType":"YulLiteral","src":"2617:4:164","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2602:3:164"},"nodeType":"YulFunctionCall","src":"2602:20:164"},{"name":"size","nodeType":"YulIdentifier","src":"2624:4:164"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2592:9:164"},"nodeType":"YulFunctionCall","src":"2592:37:164"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"2587:1:164","type":""}]},{"nodeType":"YulAssignment","src":"2705:52:164","value":{"arguments":[{"arguments":[{"name":"h","nodeType":"YulIdentifier","src":"2720:1:164"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2731:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:164","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2727:3:164"},"nodeType":"YulFunctionCall","src":"2727:14:164"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2723:3:164"},"nodeType":"YulFunctionCall","src":"2723:19:164"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2716:3:164"},"nodeType":"YulFunctionCall","src":"2716:27:164"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2749:3:164","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2754:1:164","type":"","value":"2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2745:3:164"},"nodeType":"YulFunctionCall","src":"2745:11:164"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2713:2:164"},"nodeType":"YulFunctionCall","src":"2713:44:164"},"variableNames":[{"name":"key_","nodeType":"YulIdentifier","src":"2705:4:164"}]}]},"evmVersion":"london","externalReferences":[{"declaration":97783,"isOffset":false,"isSlot":false,"src":"2483:9:164","valueSize":1},{"declaration":97783,"isOffset":false,"isSlot":false,"src":"2606:9:164","valueSize":1},{"declaration":97786,"isOffset":false,"isSlot":false,"src":"2705:4:164","valueSize":1}],"id":97788,"nodeType":"InlineAssembly","src":"2394:373:164"}]},"documentation":{"id":97781,"nodeType":"StructuredDocumentation","src":"2137:151:164","text":"@notice Computes and returns the key for a global keccak pre-image.\n @param _preimage The pre-image.\n @return key_ The pre-image key."},"implemented":true,"kind":"function","modifiers":[],"name":"keccak256PreimageKey","nameLocation":"2302:20:164","parameters":{"id":97784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97783,"mutability":"mutable","name":"_preimage","nameLocation":"2336:9:164","nodeType":"VariableDeclaration","scope":97790,"src":"2323:22:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97782,"name":"bytes","nodeType":"ElementaryTypeName","src":"2323:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2322:24:164"},"returnParameters":{"id":97787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97786,"mutability":"mutable","name":"key_","nameLocation":"2378:4:164","nodeType":"VariableDeclaration","scope":97790,"src":"2370:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2369:14:164"},"scope":97791,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"PreimageKeyLib","contractDependencies":[],"contractKind":"library","documentation":{"id":97749,"nodeType":"StructuredDocumentation","src":"57:105:164","text":"@title PreimageKeyLib\n @notice Shared utilities for localizing local keys in the preimage oracle."},"fullyImplemented":true,"linearizedBaseContracts":[97791],"name":"PreimageKeyLib","nameLocation":"170:14:164","scope":97792,"usedErrors":[]}],"license":"MIT"},"id":164}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"id":42}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49832,"contract":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","id":49862,"exportedSymbols":{"ReentrancyGuard":[49861]},"nodeType":"SourceUnit","src":"97:2563:44","nodes":[{"id":49823,"nodeType":"PragmaDirective","src":"97:23:44","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49861,"nodeType":"ContractDefinition","src":"873:1786:44","nodes":[{"id":49827,"nodeType":"VariableDeclaration","src":"1661:41:44","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1686:12:44","scope":49861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49825,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":49826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":49830,"nodeType":"VariableDeclaration","src":"1708:37:44","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"1733:8:44","scope":49861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49828,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":49829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"id":49832,"nodeType":"VariableDeclaration","src":"1752:23:44","nodes":[],"constant":false,"mutability":"mutable","name":"_status","nameLocation":"1768:7:44","scope":49861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1752:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":49840,"nodeType":"FunctionDefinition","src":"1782:53:44","nodes":[],"body":{"id":49839,"nodeType":"Block","src":"1796:39:44","nodes":[],"statements":[{"expression":{"id":49837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49835,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49832,"src":"1806:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49836,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49827,"src":"1816:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1806:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49838,"nodeType":"ExpressionStatement","src":"1806:22:44"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49833,"nodeType":"ParameterList","parameters":[],"src":"1793:2:44"},"returnParameters":{"id":49834,"nodeType":"ParameterList","parameters":[],"src":"1796:0:44"},"scope":49861,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49860,"nodeType":"ModifierDefinition","src":"2212:445:44","nodes":[],"body":{"id":49859,"nodeType":"Block","src":"2236:421:44","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49844,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49832,"src":"2325:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":49845,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49830,"src":"2336:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2325:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":49847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2346:33:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""},"value":"ReentrancyGuard: reentrant call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""}],"id":49843,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2317:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:63:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49849,"nodeType":"ExpressionStatement","src":"2317:63:44"},{"expression":{"id":49852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49850,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49832,"src":"2455:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49851,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49830,"src":"2465:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2455:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49853,"nodeType":"ExpressionStatement","src":"2455:18:44"},{"id":49854,"nodeType":"PlaceholderStatement","src":"2484:1:44"},{"expression":{"id":49857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49855,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49832,"src":"2628:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49856,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49827,"src":"2638:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49858,"nodeType":"ExpressionStatement","src":"2628:22:44"}]},"documentation":{"id":49841,"nodeType":"StructuredDocumentation","src":"1841:366:44","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"name":"nonReentrant","nameLocation":"2221:12:44","parameters":{"id":49842,"nodeType":"ParameterList","parameters":[],"src":"2233:2:44"},"virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":49824,"nodeType":"StructuredDocumentation","src":"122:750:44","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"linearizedBaseContracts":[49861],"name":"ReentrancyGuard","nameLocation":"891:15:44","scope":49862,"usedErrors":[]}],"license":"MIT"},"id":44}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_addressManager","type":"address","internalType":"contract AddressManager"},{"name":"_implementationName","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516105f03803806105f083398101604081905261002f91610088565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b03871617905590829052902061006a8282610203565b5050506102c2565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561009b57600080fd5b82516001600160a01b03811681146100b257600080fd5b602084810151919350906001600160401b03808211156100d157600080fd5b818601915086601f8301126100e557600080fd5b8151818111156100f7576100f7610072565b604051601f8201601f19908116603f0116810190838211818310171561011f5761011f610072565b81604052828152898684870101111561013757600080fd5b600093505b82841015610159578484018601518185018701529285019261013c565b8284111561016a5760008684830101525b8096505050505050509250929050565b600181811c9082168061018e57607f821691505b6020821081036101ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fe57600081815260208120601f850160051c810160208610156101db5750805b601f850160051c820191505b818110156101fa578281556001016101e7565b5050505b505050565b81516001600160401b0381111561021c5761021c610072565b6102308161022a845461017a565b846101b4565b602080601f831160018114610265576000841561024d5750858301515b600019600386901b1c1916600185901b1785556101fa565b600085815260208120601f198616915b8281101561029457888601518255948401946001909101908401610275565b50858210156102b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61031f806102d16000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:183:-:0;;;1573:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1685:4;1662:29;;;;:14;:29;;;;;;;;:47;;-1:-1:-1;;;;;;1662:47:183;-1:-1:-1;;;;;1662:47:183;;;;;1719:33;;;;;;:55;1755:19;1719:33;:55;:::i;:::-;;1573:208;;448:2077;;14:127:350;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1278;259:6;267;320:2;308:9;299:7;295:23;291:32;288:52;;;336:1;333;326:12;288:52;362:16;;-1:-1:-1;;;;;407:31:350;;397:42;;387:70;;453:1;450;443:12;387:70;500:2;531:18;;;525:25;476:5;;-1:-1:-1;500:2:350;-1:-1:-1;;;;;599:14:350;;;596:34;;;626:1;623;616:12;596:34;664:6;653:9;649:22;639:32;;709:7;702:4;698:2;694:13;690:27;680:55;;731:1;728;721:12;680:55;760:2;754:9;782:2;778;775:10;772:36;;;788:18;;:::i;:::-;863:2;857:9;831:2;917:13;;-1:-1:-1;;913:22:350;;;937:2;909:31;905:40;893:53;;;961:18;;;981:22;;;958:46;955:72;;;1007:18;;:::i;:::-;1047:10;1043:2;1036:22;1082:2;1074:6;1067:18;1122:7;1117:2;1112;1108;1104:11;1100:20;1097:33;1094:53;;;1143:1;1140;1133:12;1094:53;1165:1;1156:10;;1175:129;1189:2;1186:1;1183:9;1175:129;;;1277:10;;;1273:19;;1267:26;1246:14;;;1242:23;;1235:59;1200:10;;;;1175:129;;;1322:2;1319:1;1316:9;1313:80;;;1381:1;1376:2;1371;1363:6;1359:15;1355:24;1348:35;1313:80;1412:6;1402:16;;;;;;;;146:1278;;;;;:::o;1429:380::-;1508:1;1504:12;;;;1551;;;1572:61;;1626:4;1618:6;1614:17;1604:27;;1572:61;1679:2;1671:6;1668:14;1648:18;1645:38;1642:161;;1725:10;1720:3;1716:20;1713:1;1706:31;1760:4;1757:1;1750:15;1788:4;1785:1;1778:15;1642:161;;1429:380;;;:::o;1940:545::-;2042:2;2037:3;2034:11;2031:448;;;2078:1;2103:5;2099:2;2092:17;2148:4;2144:2;2134:19;2218:2;2206:10;2202:19;2199:1;2195:27;2189:4;2185:38;2254:4;2242:10;2239:20;2236:47;;;-1:-1:-1;2277:4:350;2236:47;2332:2;2327:3;2323:12;2320:1;2316:20;2310:4;2306:31;2296:41;;2387:82;2405:2;2398:5;2395:13;2387:82;;;2450:17;;;2431:1;2420:13;2387:82;;;2391:3;;;2031:448;1940:545;;;:::o;2661:1352::-;2781:10;;-1:-1:-1;;;;;2803:30:350;;2800:56;;;2836:18;;:::i;:::-;2865:97;2955:6;2915:38;2947:4;2941:11;2915:38;:::i;:::-;2909:4;2865:97;:::i;:::-;3017:4;;3081:2;3070:14;;3098:1;3093:663;;;;3800:1;3817:6;3814:89;;;-1:-1:-1;3869:19:350;;;3863:26;3814:89;-1:-1:-1;;2618:1:350;2614:11;;;2610:24;2606:29;2596:40;2642:1;2638:11;;;2593:57;3916:81;;3063:944;;3093:663;1887:1;1880:14;;;1924:4;1911:18;;-1:-1:-1;;3129:20:350;;;3247:236;3261:7;3258:1;3255:14;3247:236;;;3350:19;;;3344:26;3329:42;;3442:27;;;;3410:1;3398:14;;;;3277:19;;3247:236;;;3251:3;3511:6;3502:7;3499:19;3496:201;;;3572:19;;;3566:26;-1:-1:-1;;3655:1:350;3651:14;;;3667:3;3647:24;3643:37;3639:42;3624:58;3609:74;;3496:201;-1:-1:-1;;;;;3743:1:350;3727:14;;;3723:22;3710:36;;-1:-1:-1;2661:1352:350:o;:::-;448:2077:183;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:183:-:0;;;;;1955:4;1915:14;1932:29;;;:14;:29;;;;;;;;1974:33;;;;;;;1932:77;;;;1915:14;1932:29;;;;;:40;;:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1915:94;-1:-1:-1;2028:20:183;;;2020:90;;;;;;;2149:2:350;2020:90:183;;;2131:21:350;2188:2;2168:18;;;2161:30;2227:34;2207:18;;;2200:62;2298:27;2278:18;;;2271:55;2343:19;;2020:90:183;;;;;;;;2183:12;2197:23;2224:6;:19;;2244:8;;2224:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2182:71:183;;-1:-1:-1;2182:71:183;-1:-1:-1;2268:15:183;;;2279:4;2268:15;2264:253;;2362:10;2356:17;2349:4;2337:10;2333:21;2326:48;2264:253;2481:10;2475:17;2468:4;2456:10;2452:21;2445:48;295:1329:350;404:4;433:2;462;451:9;444:21;485:1;518:6;512:13;548:3;570:1;598:9;594:2;590:18;580:28;;658:2;647:9;643:18;680;670:61;;724:4;716:6;712:17;702:27;;670:61;777:2;769:6;766:14;746:18;743:38;740:222;;816:77;811:3;804:90;917:4;914:1;907:15;947:4;942:3;935:17;740:222;1018:18;;;101:19;;;153:4;144:14;1061:18;1088:186;;;;1288:1;1283:315;;;;1054:544;;1088:186;1136:66;1125:9;1121:82;1116:3;1109:95;1254:6;1247:14;1240:22;1237:1;1233:30;1228:3;1224:40;1217:47;;1088:186;;1283:315;242:1;235:14;;;279:4;266:18;;1378:1;1392:165;1406:6;1403:1;1400:13;1392:165;;;1484:14;;1471:11;;;1464:35;1527:16;;;;1421:10;;1392:165;;;1577:11;;;-1:-1:-1;;1054:544:350;-1:-1:-1;1615:3:350;;295:1329;-1:-1:-1;;;;;;;;;295:1329:350:o;1629:313::-;1699:6;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1800:9;1794:16;1850:42;1843:5;1839:54;1832:5;1829:65;1819:93;;1908:1;1905;1898:12;1819:93;1931:5;1629:313;-1:-1:-1;;;1629:313:350:o;2373:271::-;2556:6;2548;2543:3;2530:33;2512:3;2582:16;;2607:13;;;2582:16;2373:271;-1:-1:-1;2373:271:350:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_implementationName\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"custom:legacy\":\"@title ResolvedDelegateProxy\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_addressManager\":\"Address of the AddressManager.\",\"_implementationName\":\"implementationName of the contract to proxy to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/ResolvedDelegateProxy.sol\":\"ResolvedDelegateProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]},\"src/legacy/ResolvedDelegateProxy.sol\":{\"keccak256\":\"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32\",\"dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract AddressManager","name":"_addressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/ResolvedDelegateProxy.sol":"ResolvedDelegateProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"},"src/legacy/ResolvedDelegateProxy.sol":{"keccak256":"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9","urls":["bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32","dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":99224,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"implementationName","offset":0,"slot":"0","type":"t_mapping(t_address,t_string_storage)"},{"astId":99230,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"addressManager","offset":0,"slot":"1","type":"t_mapping(t_address,t_contract(AddressManager)98517)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(AddressManager)98517":{"encoding":"inplace","label":"contract AddressManager","numberOfBytes":"20"},"t_mapping(t_address,t_contract(AddressManager)98517)":{"encoding":"mapping","key":"t_address","label":"mapping(address => contract AddressManager)","numberOfBytes":"32","value":"t_contract(AddressManager)98517"},"t_mapping(t_address,t_string_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}}},"id":183}
{"abi":[{"type":"constructor","inputs":[{"name":"_addressManager","type":"address","internalType":"contract AddressManager"},{"name":"_implementationName","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516105f03803806105f083398101604081905261002f91610088565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b03871617905590829052902061006a8282610203565b5050506102c2565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561009b57600080fd5b82516001600160a01b03811681146100b257600080fd5b602084810151919350906001600160401b03808211156100d157600080fd5b818601915086601f8301126100e557600080fd5b8151818111156100f7576100f7610072565b604051601f8201601f19908116603f0116810190838211818310171561011f5761011f610072565b81604052828152898684870101111561013757600080fd5b600093505b82841015610159578484018601518185018701529285019261013c565b8284111561016a5760008684830101525b8096505050505050509250929050565b600181811c9082168061018e57607f821691505b6020821081036101ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fe57600081815260208120601f850160051c810160208610156101db5750805b601f850160051c820191505b818110156101fa578281556001016101e7565b5050505b505050565b81516001600160401b0381111561021c5761021c610072565b6102308161022a845461017a565b846101b4565b602080601f831160018114610265576000841561024d5750858301515b600019600386901b1c1916600185901b1785556101fa565b600085815260208120601f198616915b8281101561029457888601518255948401946001909101908401610275565b50858210156102b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61031f806102d16000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:195:-:0;;;1573:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1685:4;1662:29;;;;:14;:29;;;;;;;;:47;;-1:-1:-1;;;;;;1662:47:195;-1:-1:-1;;;;;1662:47:195;;;;;1719:33;;;;;;:55;1755:19;1719:33;:55;:::i;:::-;;1573:208;;448:2077;;14:127:382;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1279;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;363:16;;-1:-1:-1;;;;;408:31:382;;398:42;;388:70;;454:1;451;444:12;388:70;501:2;532:18;;;526:25;477:5;;-1:-1:-1;501:2:382;-1:-1:-1;;;;;600:14:382;;;597:34;;;627:1;624;617:12;597:34;665:6;654:9;650:22;640:32;;710:7;703:4;699:2;695:13;691:27;681:55;;732:1;729;722:12;681:55;761:2;755:9;783:2;779;776:10;773:36;;;789:18;;:::i;:::-;864:2;858:9;832:2;918:13;;-1:-1:-1;;914:22:382;;;938:2;910:31;906:40;894:53;;;962:18;;;982:22;;;959:46;956:72;;;1008:18;;:::i;:::-;1048:10;1044:2;1037:22;1083:2;1075:6;1068:18;1123:7;1118:2;1113;1109;1105:11;1101:20;1098:33;1095:53;;;1144:1;1141;1134:12;1095:53;1166:1;1157:10;;1176:129;1190:2;1187:1;1184:9;1176:129;;;1278:10;;;1274:19;;1268:26;1247:14;;;1243:23;;1236:59;1201:10;;;;1176:129;;;1323:2;1320:1;1317:9;1314:80;;;1382:1;1377:2;1372;1364:6;1360:15;1356:24;1349:35;1314:80;1413:6;1403:16;;;;;;;;146:1279;;;;;:::o;1430:380::-;1509:1;1505:12;;;;1552;;;1573:61;;1627:4;1619:6;1615:17;1605:27;;1573:61;1680:2;1672:6;1669:14;1649:18;1646:38;1643:161;;1726:10;1721:3;1717:20;1714:1;1707:31;1761:4;1758:1;1751:15;1789:4;1786:1;1779:15;1643:161;;1430:380;;;:::o;1941:545::-;2043:2;2038:3;2035:11;2032:448;;;2079:1;2104:5;2100:2;2093:17;2149:4;2145:2;2135:19;2219:2;2207:10;2203:19;2200:1;2196:27;2190:4;2186:38;2255:4;2243:10;2240:20;2237:47;;;-1:-1:-1;2278:4:382;2237:47;2333:2;2328:3;2324:12;2321:1;2317:20;2311:4;2307:31;2297:41;;2388:82;2406:2;2399:5;2396:13;2388:82;;;2451:17;;;2432:1;2421:13;2388:82;;;2392:3;;;2032:448;1941:545;;;:::o;2662:1352::-;2782:10;;-1:-1:-1;;;;;2804:30:382;;2801:56;;;2837:18;;:::i;:::-;2866:97;2956:6;2916:38;2948:4;2942:11;2916:38;:::i;:::-;2910:4;2866:97;:::i;:::-;3018:4;;3082:2;3071:14;;3099:1;3094:663;;;;3801:1;3818:6;3815:89;;;-1:-1:-1;3870:19:382;;;3864:26;3815:89;-1:-1:-1;;2619:1:382;2615:11;;;2611:24;2607:29;2597:40;2643:1;2639:11;;;2594:57;3917:81;;3064:944;;3094:663;1888:1;1881:14;;;1925:4;1912:18;;-1:-1:-1;;3130:20:382;;;3248:236;3262:7;3259:1;3256:14;3248:236;;;3351:19;;;3345:26;3330:42;;3443:27;;;;3411:1;3399:14;;;;3278:19;;3248:236;;;3252:3;3512:6;3503:7;3500:19;3497:201;;;3573:19;;;3567:26;-1:-1:-1;;3656:1:382;3652:14;;;3668:3;3648:24;3644:37;3640:42;3625:58;3610:74;;3497:201;-1:-1:-1;;;;;3744:1:382;3728:14;;;3724:22;3711:36;;-1:-1:-1;2662:1352:382:o;:::-;448:2077:195;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:195:-:0;;;;;1955:4;1915:14;1932:29;;;:14;:29;;;;;;;;1974:33;;;;;;;1932:77;;;;1915:14;1932:29;;;;;:40;;:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1915:94;-1:-1:-1;2028:20:195;;;2020:90;;;;;;;2149:2:382;2020:90:195;;;2131:21:382;2188:2;2168:18;;;2161:30;2227:34;2207:18;;;2200:62;2298:27;2278:18;;;2271:55;2343:19;;2020:90:195;;;;;;;;2183:12;2197:23;2224:6;:19;;2244:8;;2224:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2182:71:195;;-1:-1:-1;2182:71:195;-1:-1:-1;2268:15:195;;;2279:4;2268:15;2264:253;;2362:10;2356:17;2349:4;2337:10;2333:21;2326:48;2264:253;2481:10;2475:17;2468:4;2456:10;2452:21;2445:48;295:1329:382;404:4;433:2;462;451:9;444:21;485:1;518:6;512:13;548:3;570:1;598:9;594:2;590:18;580:28;;658:2;647:9;643:18;680;670:61;;724:4;716:6;712:17;702:27;;670:61;777:2;769:6;766:14;746:18;743:38;740:222;;816:77;811:3;804:90;917:4;914:1;907:15;947:4;942:3;935:17;740:222;1018:18;;;101:19;;;153:4;144:14;1061:18;1088:186;;;;1288:1;1283:315;;;;1054:544;;1088:186;1136:66;1125:9;1121:82;1116:3;1109:95;1254:6;1247:14;1240:22;1237:1;1233:30;1228:3;1224:40;1217:47;;1088:186;;1283:315;242:1;235:14;;;279:4;266:18;;1378:1;1392:165;1406:6;1403:1;1400:13;1392:165;;;1484:14;;1471:11;;;1464:35;1527:16;;;;1421:10;;1392:165;;;1577:11;;;-1:-1:-1;;1054:544:382;-1:-1:-1;1615:3:382;;295:1329;-1:-1:-1;;;;;;;;;295:1329:382:o;1629:313::-;1699:6;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1800:9;1794:16;1850:42;1843:5;1839:54;1832:5;1829:65;1819:93;;1908:1;1905;1898:12;1819:93;1931:5;1629:313;-1:-1:-1;;;1629:313:382:o;2373:271::-;2556:6;2548;2543:3;2530:33;2512:3;2582:16;;2607:13;;;2582:16;2373:271;-1:-1:-1;2373:271:382:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_implementationName\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"custom:legacy\":\"@title ResolvedDelegateProxy\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_addressManager\":\"Address of the AddressManager.\",\"_implementationName\":\"implementationName of the contract to proxy to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/ResolvedDelegateProxy.sol\":\"ResolvedDelegateProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]},\"src/legacy/ResolvedDelegateProxy.sol\":{\"keccak256\":\"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32\",\"dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract AddressManager","name":"_addressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/ResolvedDelegateProxy.sol":"ResolvedDelegateProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"},"src/legacy/ResolvedDelegateProxy.sol":{"keccak256":"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9","urls":["bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32","dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105868,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"implementationName","offset":0,"slot":"0","type":"t_mapping(t_address,t_string_storage)"},{"astId":105874,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"addressManager","offset":0,"slot":"1","type":"t_mapping(t_address,t_contract(AddressManager)105161)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(AddressManager)105161":{"encoding":"inplace","label":"contract AddressManager","numberOfBytes":"20"},"t_mapping(t_address,t_contract(AddressManager)105161)":{"encoding":"mapping","key":"t_address","label":"mapping(address => contract AddressManager)","numberOfBytes":"32","value":"t_contract(AddressManager)105161"},"t_mapping(t_address,t_string_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}}},"ast":{"absolutePath":"src/legacy/ResolvedDelegateProxy.sol","id":105955,"exportedSymbols":{"AddressManager":[105161],"ResolvedDelegateProxy":[105954]},"nodeType":"SourceUnit","src":"32:2494:195","nodes":[{"id":105860,"nodeType":"PragmaDirective","src":"32:23:195","nodes":[],"literals":["solidity","0.8",".15"]},{"id":105862,"nodeType":"ImportDirective","src":"57:63:195","nodes":[],"absolutePath":"src/legacy/AddressManager.sol","file":"src/legacy/AddressManager.sol","nameLocation":"-1:-1:-1","scope":105955,"sourceUnit":105162,"symbolAliases":[{"foreign":{"id":105861,"name":"AddressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105161,"src":"66:14:195","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":105954,"nodeType":"ContractDefinition","src":"448:2077:195","nodes":[{"id":105868,"nodeType":"VariableDeclaration","src":"969:53:195","nodes":[],"constant":false,"documentation":{"id":105864,"nodeType":"StructuredDocumentation","src":"485:479:195","text":"@notice Mapping used to store the implementation name that corresponds to this contract. A\n mapping was originally used as a way to bypass the same issue normally solved by\n storing the implementation address in a specific storage slot that does not conflict\n with any other storage slot. Generally NOT a safe solution but works as long as the\n implementation does not also keep a mapping in the first storage slot."},"mutability":"mutable","name":"implementationName","nameLocation":"1004:18:195","scope":105954,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":105867,"keyType":{"id":105865,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:195","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"969:26:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueType":{"id":105866,"name":"string","nodeType":"ElementaryTypeName","src":"988:6:195","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":105874,"nodeType":"VariableDeclaration","src":"1363:57:195","nodes":[],"constant":false,"documentation":{"id":105869,"nodeType":"StructuredDocumentation","src":"1029:329:195","text":"@notice Mapping used to store the address of the AddressManager contract where the\n implementation address will be resolved from. Same concept here as with the above\n mapping. Also generally unsafe but fine if the implementation doesn't keep a mapping\n in the second storage slot."},"mutability":"mutable","name":"addressManager","nameLocation":"1406:14:195","scope":105954,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$105161_$","typeString":"mapping(address => contract AddressManager)"},"typeName":{"id":105873,"keyType":{"id":105870,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:195","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1363:34:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$105161_$","typeString":"mapping(address => contract AddressManager)"},"valueType":{"id":105872,"nodeType":"UserDefinedTypeName","pathNode":{"id":105871,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":105161,"src":"1382:14:195"},"referencedDeclaration":105161,"src":"1382:14:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}}},"visibility":"private"},{"id":105902,"nodeType":"FunctionDefinition","src":"1573:208:195","nodes":[],"body":{"id":105901,"nodeType":"Block","src":"1652:129:195","nodes":[],"statements":[{"expression":{"id":105890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":105883,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105874,"src":"1662:14:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$105161_$","typeString":"mapping(address => contract AddressManager)"}},"id":105888,"indexExpression":{"arguments":[{"id":105886,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1685:4:195","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}],"id":105885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1677:7:195","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105884,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:195","typeDescriptions":{}}},"id":105887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1677:13:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1662:29:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":105889,"name":"_addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105878,"src":"1694:15:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}},"src":"1662:47:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}},"id":105891,"nodeType":"ExpressionStatement","src":"1662:47:195"},{"expression":{"id":105899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":105892,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105868,"src":"1719:18:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":105897,"indexExpression":{"arguments":[{"id":105895,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1746:4:195","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}],"id":105894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1738:7:195","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105893,"name":"address","nodeType":"ElementaryTypeName","src":"1738:7:195","typeDescriptions":{}}},"id":105896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1738:13:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1719:33:195","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":105898,"name":"_implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105880,"src":"1755:19:195","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1719:55:195","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":105900,"nodeType":"ExpressionStatement","src":"1719:55:195"}]},"documentation":{"id":105875,"nodeType":"StructuredDocumentation","src":"1427:141:195","text":"@param _addressManager Address of the AddressManager.\n @param _implementationName implementationName of the contract to proxy to."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":105881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105878,"mutability":"mutable","name":"_addressManager","nameLocation":"1600:15:195","nodeType":"VariableDeclaration","scope":105902,"src":"1585:30:195","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"},"typeName":{"id":105877,"nodeType":"UserDefinedTypeName","pathNode":{"id":105876,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":105161,"src":"1585:14:195"},"referencedDeclaration":105161,"src":"1585:14:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}},"visibility":"internal"},{"constant":false,"id":105880,"mutability":"mutable","name":"_implementationName","nameLocation":"1631:19:195","nodeType":"VariableDeclaration","scope":105902,"src":"1617:33:195","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":105879,"name":"string","nodeType":"ElementaryTypeName","src":"1617:6:195","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1584:67:195"},"returnParameters":{"id":105882,"nodeType":"ParameterList","parameters":[],"src":"1652:0:195"},"scope":105954,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":105953,"nodeType":"FunctionDefinition","src":"1877:646:195","nodes":[],"body":{"id":105952,"nodeType":"Block","src":"1905:618:195","nodes":[],"statements":[{"assignments":[105907],"declarations":[{"constant":false,"id":105907,"mutability":"mutable","name":"target","nameLocation":"1923:6:195","nodeType":"VariableDeclaration","scope":105952,"src":"1915:14:195","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105906,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:195","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":105923,"initialValue":{"arguments":[{"components":[{"baseExpression":{"id":105915,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105868,"src":"1974:18:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":105920,"indexExpression":{"arguments":[{"id":105918,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2001:4:195","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}],"id":105917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1993:7:195","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105916,"name":"address","nodeType":"ElementaryTypeName","src":"1993:7:195","typeDescriptions":{}}},"id":105919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1993:13:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1974:33:195","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"id":105921,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1973:35:195","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"baseExpression":{"id":105908,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105874,"src":"1932:14:195","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$105161_$","typeString":"mapping(address => contract AddressManager)"}},"id":105913,"indexExpression":{"arguments":[{"id":105911,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1955:4:195","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$105954","typeString":"contract ResolvedDelegateProxy"}],"id":105910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1947:7:195","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105909,"name":"address","nodeType":"ElementaryTypeName","src":"1947:7:195","typeDescriptions":{}}},"id":105912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:13:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1932:29:195","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$105161","typeString":"contract AddressManager"}},"id":105914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":105144,"src":"1932:40:195","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view external returns (address)"}},"id":105922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1932:77:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1915:94:195"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":105930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":105925,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105907,"src":"2028:6:195","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":105928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:195","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":105927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:195","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":105926,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:195","typeDescriptions":{}}},"id":105929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2038:10:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:20:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265736f6c76656444656c656761746550726f78793a207461726765742061646472657373206d75737420626520696e697469616c697a6564","id":105931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2050:59:195","typeDescriptions":{"typeIdentifier":"t_stringliteral_4d854a8e116e0f3da73003360f03ac382ae8205c4798da9ecd48d43a1cc0a5e7","typeString":"literal_string \"ResolvedDelegateProxy: target address must be initialized\""},"value":"ResolvedDelegateProxy: target address must be initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d854a8e116e0f3da73003360f03ac382ae8205c4798da9ecd48d43a1cc0a5e7","typeString":"literal_string \"ResolvedDelegateProxy: target address must be initialized\""}],"id":105924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:195","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":105932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:90:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":105933,"nodeType":"ExpressionStatement","src":"2020:90:195"},{"assignments":[105935,105937],"declarations":[{"constant":false,"id":105935,"mutability":"mutable","name":"success","nameLocation":"2188:7:195","nodeType":"VariableDeclaration","scope":105952,"src":"2183:12:195","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":105934,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":105937,"mutability":"mutable","name":"returndata","nameLocation":"2210:10:195","nodeType":"VariableDeclaration","scope":105952,"src":"2197:23:195","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":105936,"name":"bytes","nodeType":"ElementaryTypeName","src":"2197:5:195","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":105943,"initialValue":{"arguments":[{"expression":{"id":105940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2244:3:195","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":105941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"2244:8:195","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":105938,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105907,"src":"2224:6:195","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":105939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"2224:19:195","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":105942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2224:29:195","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2182:71:195"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":105946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":105944,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105935,"src":"2268:7:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":105945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2279:4:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2268:15:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":105950,"nodeType":"Block","src":"2404:113:195","statements":[{"AST":{"nodeType":"YulBlock","src":"2427:80:195","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2456:10:195"},{"kind":"number","nodeType":"YulLiteral","src":"2468:4:195","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2452:3:195"},"nodeType":"YulFunctionCall","src":"2452:21:195"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2481:10:195"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2475:5:195"},"nodeType":"YulFunctionCall","src":"2475:17:195"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2445:6:195"},"nodeType":"YulFunctionCall","src":"2445:48:195"},"nodeType":"YulExpressionStatement","src":"2445:48:195"}]},"evmVersion":"london","externalReferences":[{"declaration":105937,"isOffset":false,"isSlot":false,"src":"2456:10:195","valueSize":1},{"declaration":105937,"isOffset":false,"isSlot":false,"src":"2481:10:195","valueSize":1}],"id":105949,"nodeType":"InlineAssembly","src":"2418:89:195"}]},"id":105951,"nodeType":"IfStatement","src":"2264:253:195","trueBody":{"id":105948,"nodeType":"Block","src":"2285:113:195","statements":[{"AST":{"nodeType":"YulBlock","src":"2308:80:195","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2337:10:195"},{"kind":"number","nodeType":"YulLiteral","src":"2349:4:195","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2333:3:195"},"nodeType":"YulFunctionCall","src":"2333:21:195"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2362:10:195"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2356:5:195"},"nodeType":"YulFunctionCall","src":"2356:17:195"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"2326:6:195"},"nodeType":"YulFunctionCall","src":"2326:48:195"},"nodeType":"YulExpressionStatement","src":"2326:48:195"}]},"evmVersion":"london","externalReferences":[{"declaration":105937,"isOffset":false,"isSlot":false,"src":"2337:10:195","valueSize":1},{"declaration":105937,"isOffset":false,"isSlot":false,"src":"2362:10:195","valueSize":1}],"id":105947,"nodeType":"InlineAssembly","src":"2299:89:195"}]}}]},"documentation":{"id":105903,"nodeType":"StructuredDocumentation","src":"1787:85:195","text":"@notice Fallback, performs a delegatecall to the resolved implementation address."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":105904,"nodeType":"ParameterList","parameters":[],"src":"1885:2:195"},"returnParameters":{"id":105905,"nodeType":"ParameterList","parameters":[],"src":"1905:0:195"},"scope":105954,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ResolvedDelegateProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":105863,"nodeType":"StructuredDocumentation","src":"122:326:195","text":"@custom:legacy\n @title ResolvedDelegateProxy\n @notice ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to\n resolve the implementation address. We're maintaining this contract for backwards\n compatibility so we can manage all legacy proxies where necessary."},"fullyImplemented":true,"linearizedBaseContracts":[105954],"name":"ResolvedDelegateProxy","nameLocation":"457:21:195","scope":105955,"usedErrors":[]}],"license":"MIT"},"id":195}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:195:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;118:6623:195;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:195:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeCall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Perform low level safe calls\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/SafeCall.sol\":\"SafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/SafeCall.sol":"SafeCall"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Perform low level safe calls"},"devdoc":{"version":1,"kind":"dev","title":"SafeCall"},"id":195}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:208:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;118:6623:208;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:208:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeCall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Perform low level safe calls\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/SafeCall.sol\":\"SafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/SafeCall.sol":"SafeCall"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Perform low level safe calls"},"devdoc":{"version":1,"kind":"dev","title":"SafeCall"},"ast":{"absolutePath":"src/libraries/SafeCall.sol","id":108108,"exportedSymbols":{"SafeCall":[108107]},"nodeType":"SourceUnit","src":"32:6710:208","nodes":[{"id":108020,"nodeType":"PragmaDirective","src":"32:23:208","nodes":[],"literals":["solidity","0.8",".15"]},{"id":108107,"nodeType":"ContractDefinition","src":"118:6623:208","nodes":[{"id":108040,"nodeType":"FunctionDefinition","src":"429:480:208","nodes":[],"body":{"id":108039,"nodeType":"Block","src":"514:395:208","nodes":[],"statements":[{"assignments":[108034],"declarations":[{"constant":false,"id":108034,"mutability":"mutable","name":"_success","nameLocation":"529:8:208","nodeType":"VariableDeclaration","scope":108039,"src":"524:13:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108033,"name":"bool","nodeType":"ElementaryTypeName","src":"524:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":108035,"nodeType":"VariableDeclarationStatement","src":"524:13:208"},{"AST":{"nodeType":"YulBlock","src":"556:322:208","statements":[{"nodeType":"YulAssignment","src":"570:298:208","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"624:4:208"},{"name":"_target","nodeType":"YulIdentifier","src":"657:7:208"},{"name":"_value","nodeType":"YulIdentifier","src":"699:6:208"},{"kind":"number","nodeType":"YulLiteral","src":"742:1:208","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"774:1:208","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"806:1:208","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"839:1:208","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"598:4:208"},"nodeType":"YulFunctionCall","src":"598:270:208"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"570:8:208"}]}]},"evmVersion":"london","externalReferences":[{"declaration":108026,"isOffset":false,"isSlot":false,"src":"624:4:208","valueSize":1},{"declaration":108034,"isOffset":false,"isSlot":false,"src":"570:8:208","valueSize":1},{"declaration":108024,"isOffset":false,"isSlot":false,"src":"657:7:208","valueSize":1},{"declaration":108028,"isOffset":false,"isSlot":false,"src":"699:6:208","valueSize":1}],"id":108036,"nodeType":"InlineAssembly","src":"547:331:208"},{"expression":{"id":108037,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108034,"src":"894:8:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108032,"id":108038,"nodeType":"Return","src":"887:15:208"}]},"documentation":{"id":108022,"nodeType":"StructuredDocumentation","src":"141:283:208","text":"@notice Performs a low level call without copying any returndata.\n @dev Passes no calldata to the call context.\n @param _target Address to call\n @param _gas Amount of gas to pass to the call\n @param _value Amount of value to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"send","nameLocation":"438:4:208","parameters":{"id":108029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108024,"mutability":"mutable","name":"_target","nameLocation":"451:7:208","nodeType":"VariableDeclaration","scope":108040,"src":"443:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108023,"name":"address","nodeType":"ElementaryTypeName","src":"443:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108026,"mutability":"mutable","name":"_gas","nameLocation":"468:4:208","nodeType":"VariableDeclaration","scope":108040,"src":"460:12:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108025,"name":"uint256","nodeType":"ElementaryTypeName","src":"460:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108028,"mutability":"mutable","name":"_value","nameLocation":"482:6:208","nodeType":"VariableDeclaration","scope":108040,"src":"474:14:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108027,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"442:47:208"},"returnParameters":{"id":108032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108040,"src":"508:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108030,"name":"bool","nodeType":"ElementaryTypeName","src":"508:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"507:6:208"},"scope":108107,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":108061,"nodeType":"FunctionDefinition","src":"1202:536:208","nodes":[],"body":{"id":108060,"nodeType":"Block","src":"1311:427:208","nodes":[],"statements":[{"assignments":[108055],"declarations":[{"constant":false,"id":108055,"mutability":"mutable","name":"_success","nameLocation":"1326:8:208","nodeType":"VariableDeclaration","scope":108060,"src":"1321:13:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108054,"name":"bool","nodeType":"ElementaryTypeName","src":"1321:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":108056,"nodeType":"VariableDeclarationStatement","src":"1321:13:208"},{"AST":{"nodeType":"YulBlock","src":"1353:354:208","statements":[{"nodeType":"YulAssignment","src":"1367:330:208","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"1421:4:208"},{"name":"_target","nodeType":"YulIdentifier","src":"1454:7:208"},{"name":"_value","nodeType":"YulIdentifier","src":"1496:6:208"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1543:9:208"},{"kind":"number","nodeType":"YulLiteral","src":"1554:2:208","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1539:3:208"},"nodeType":"YulFunctionCall","src":"1539:18:208"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1594:9:208"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1588:5:208"},"nodeType":"YulFunctionCall","src":"1588:16:208"},{"kind":"number","nodeType":"YulLiteral","src":"1635:1:208","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1668:1:208","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1395:4:208"},"nodeType":"YulFunctionCall","src":"1395:302:208"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"1367:8:208"}]}]},"evmVersion":"london","externalReferences":[{"declaration":108049,"isOffset":false,"isSlot":false,"src":"1543:9:208","valueSize":1},{"declaration":108049,"isOffset":false,"isSlot":false,"src":"1594:9:208","valueSize":1},{"declaration":108045,"isOffset":false,"isSlot":false,"src":"1421:4:208","valueSize":1},{"declaration":108055,"isOffset":false,"isSlot":false,"src":"1367:8:208","valueSize":1},{"declaration":108043,"isOffset":false,"isSlot":false,"src":"1454:7:208","valueSize":1},{"declaration":108047,"isOffset":false,"isSlot":false,"src":"1496:6:208","valueSize":1}],"id":108057,"nodeType":"InlineAssembly","src":"1344:363:208"},{"expression":{"id":108058,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108055,"src":"1723:8:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108053,"id":108059,"nodeType":"Return","src":"1716:15:208"}]},"documentation":{"id":108041,"nodeType":"StructuredDocumentation","src":"915:282:208","text":"@notice Perform a low level call without copying any returndata\n @param _target Address to call\n @param _gas Amount of gas to pass to the call\n @param _value Amount of value to pass to the call\n @param _calldata Calldata to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1211:4:208","parameters":{"id":108050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108043,"mutability":"mutable","name":"_target","nameLocation":"1224:7:208","nodeType":"VariableDeclaration","scope":108061,"src":"1216:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108042,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108045,"mutability":"mutable","name":"_gas","nameLocation":"1241:4:208","nodeType":"VariableDeclaration","scope":108061,"src":"1233:12:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108044,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108047,"mutability":"mutable","name":"_value","nameLocation":"1255:6:208","nodeType":"VariableDeclaration","scope":108061,"src":"1247:14:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108046,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108049,"mutability":"mutable","name":"_calldata","nameLocation":"1276:9:208","nodeType":"VariableDeclaration","scope":108061,"src":"1263:22:208","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":108048,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:208","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1215:71:208"},"returnParameters":{"id":108053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108061,"src":"1305:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108051,"name":"bool","nodeType":"ElementaryTypeName","src":"1305:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1304:6:208"},"scope":108107,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":108078,"nodeType":"FunctionDefinition","src":"3615:365:208","nodes":[],"body":{"id":108077,"nodeType":"Block","src":"3702:278:208","nodes":[],"statements":[{"assignments":[108072],"declarations":[{"constant":false,"id":108072,"mutability":"mutable","name":"_hasMinGas","nameLocation":"3717:10:208","nodeType":"VariableDeclaration","scope":108077,"src":"3712:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108071,"name":"bool","nodeType":"ElementaryTypeName","src":"3712:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":108073,"nodeType":"VariableDeclarationStatement","src":"3712:15:208"},{"AST":{"nodeType":"YulBlock","src":"3746:201:208","statements":[{"nodeType":"YulAssignment","src":"3839:98:208","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"3867:3:208"},"nodeType":"YulFunctionCall","src":"3867:5:208"},{"kind":"number","nodeType":"YulLiteral","src":"3874:2:208","type":"","value":"63"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3863:3:208"},"nodeType":"YulFunctionCall","src":"3863:14:208"},{"arguments":[{"arguments":[{"name":"_minGas","nodeType":"YulIdentifier","src":"3887:7:208"},{"kind":"number","nodeType":"YulLiteral","src":"3896:2:208","type":"","value":"64"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3883:3:208"},"nodeType":"YulFunctionCall","src":"3883:16:208"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3909:5:208","type":"","value":"40000"},{"name":"_reservedGas","nodeType":"YulIdentifier","src":"3916:12:208"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3905:3:208"},"nodeType":"YulFunctionCall","src":"3905:24:208"},{"kind":"number","nodeType":"YulLiteral","src":"3931:2:208","type":"","value":"63"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3901:3:208"},"nodeType":"YulFunctionCall","src":"3901:33:208"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3879:3:208"},"nodeType":"YulFunctionCall","src":"3879:56:208"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3860:2:208"},"nodeType":"YulFunctionCall","src":"3860:76:208"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3853:6:208"},"nodeType":"YulFunctionCall","src":"3853:84:208"},"variableNames":[{"name":"_hasMinGas","nodeType":"YulIdentifier","src":"3839:10:208"}]}]},"evmVersion":"london","externalReferences":[{"declaration":108072,"isOffset":false,"isSlot":false,"src":"3839:10:208","valueSize":1},{"declaration":108064,"isOffset":false,"isSlot":false,"src":"3887:7:208","valueSize":1},{"declaration":108066,"isOffset":false,"isSlot":false,"src":"3916:12:208","valueSize":1}],"id":108074,"nodeType":"InlineAssembly","src":"3737:210:208"},{"expression":{"id":108075,"name":"_hasMinGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108072,"src":"3963:10:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108070,"id":108076,"nodeType":"Return","src":"3956:17:208"}]},"documentation":{"id":108062,"nodeType":"StructuredDocumentation","src":"1744:1866:208","text":"@notice Helper function to determine if there is sufficient gas remaining within the context\n to guarantee that the minimum gas requirement for a call will be met as well as\n optionally reserving a specified amount of gas for after the call has concluded.\n @param _minGas The minimum amount of gas that may be passed to the target context.\n @param _reservedGas Optional amount of gas to reserve for the caller after the execution\n of the target context.\n @return `true` if there is enough gas remaining to safely supply `_minGas` to the target\n context as well as reserve `_reservedGas` for the caller after the execution of\n the target context.\n @dev !!!!! FOOTGUN ALERT !!!!!\n 1.) The 40_000 base buffer is to account for the worst case of the dynamic cost of the\n `CALL` opcode's `address_access_cost`, `positive_value_cost`, and\n `value_to_empty_account_cost` factors with an added buffer of 5,700 gas. It is\n still possible to self-rekt by initiating a withdrawal with a minimum gas limit\n that does not account for the `memory_expansion_cost` & `code_execution_cost`\n factors of the dynamic cost of the `CALL` opcode.\n 2.) This function should *directly* precede the external call if possible. There is an\n added buffer to account for gas consumed between this check and the call, but it\n is only 5,700 gas.\n 3.) Because EIP-150 ensures that a maximum of 63/64ths of the remaining gas in the call\n frame may be passed to a subcontext, we need to ensure that the gas will not be\n truncated.\n 4.) Use wisely. This function is not a silver bullet."},"implemented":true,"kind":"function","modifiers":[],"name":"hasMinGas","nameLocation":"3624:9:208","parameters":{"id":108067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108064,"mutability":"mutable","name":"_minGas","nameLocation":"3642:7:208","nodeType":"VariableDeclaration","scope":108078,"src":"3634:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3634:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108066,"mutability":"mutable","name":"_reservedGas","nameLocation":"3659:12:208","nodeType":"VariableDeclaration","scope":108078,"src":"3651:20:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108065,"name":"uint256","nodeType":"ElementaryTypeName","src":"3651:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3633:39:208"},"returnParameters":{"id":108070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108078,"src":"3696:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108068,"name":"bool","nodeType":"ElementaryTypeName","src":"3696:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3695:6:208"},"scope":108107,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":108106,"nodeType":"FunctionDefinition","src":"4419:2320:208","nodes":[],"body":{"id":108105,"nodeType":"Block","src":"4599:2140:208","nodes":[],"statements":[{"assignments":[108093],"declarations":[{"constant":false,"id":108093,"mutability":"mutable","name":"_success","nameLocation":"4614:8:208","nodeType":"VariableDeclaration","scope":108105,"src":"4609:13:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108092,"name":"bool","nodeType":"ElementaryTypeName","src":"4609:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":108094,"nodeType":"VariableDeclarationStatement","src":"4609:13:208"},{"assignments":[108096],"declarations":[{"constant":false,"id":108096,"mutability":"mutable","name":"_hasMinGas","nameLocation":"4637:10:208","nodeType":"VariableDeclaration","scope":108105,"src":"4632:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108095,"name":"bool","nodeType":"ElementaryTypeName","src":"4632:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":108101,"initialValue":{"arguments":[{"id":108098,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108083,"src":"4660:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":108099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4669:1:208","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":108097,"name":"hasMinGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108078,"src":"4650:9:208","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":108100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4650:21:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4632:39:208"},{"AST":{"nodeType":"YulBlock","src":"4690:2018:208","statements":[{"body":{"nodeType":"YulBlock","src":"4794:1124:208","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4891:1:208","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4894:10:208","type":"","value":"0x08c379a0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4884:6:208"},"nodeType":"YulFunctionCall","src":"4884:21:208"},"nodeType":"YulExpressionStatement","src":"4884:21:208"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5005:2:208","type":"","value":"32"},{"kind":"number","nodeType":"YulLiteral","src":"5009:2:208","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4998:6:208"},"nodeType":"YulFunctionCall","src":"4998:14:208"},"nodeType":"YulExpressionStatement","src":"4998:14:208"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5743:2:208","type":"","value":"88"},{"kind":"number","nodeType":"YulLiteral","src":"5747:56:208","type":"","value":"0x0000185361666543616c6c3a204e6f7420656e6f75676820676173"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5736:6:208"},"nodeType":"YulFunctionCall","src":"5736:68:208"},"nodeType":"YulExpressionStatement","src":"5736:68:208"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5896:2:208","type":"","value":"28"},{"kind":"number","nodeType":"YulLiteral","src":"5900:3:208","type":"","value":"100"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5889:6:208"},"nodeType":"YulFunctionCall","src":"5889:15:208"},"nodeType":"YulExpressionStatement","src":"5889:15:208"}]},"condition":{"arguments":[{"name":"_hasMinGas","nodeType":"YulIdentifier","src":"4782:10:208"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4775:6:208"},"nodeType":"YulFunctionCall","src":"4775:18:208"},"nodeType":"YulIf","src":"4772:1146:208"},{"nodeType":"YulAssignment","src":"6361:337:208","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"6415:3:208"},"nodeType":"YulFunctionCall","src":"6415:5:208"},{"name":"_target","nodeType":"YulIdentifier","src":"6449:7:208"},{"name":"_value","nodeType":"YulIdentifier","src":"6491:6:208"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"6538:9:208"},{"kind":"number","nodeType":"YulLiteral","src":"6549:2:208","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6534:3:208"},"nodeType":"YulFunctionCall","src":"6534:18:208"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"6589:9:208"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6583:5:208"},"nodeType":"YulFunctionCall","src":"6583:16:208"},{"kind":"number","nodeType":"YulLiteral","src":"6630:4:208","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6666:4:208","type":"","value":"0x00"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"6389:4:208"},"nodeType":"YulFunctionCall","src":"6389:309:208"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"6361:8:208"}]}]},"evmVersion":"london","externalReferences":[{"declaration":108087,"isOffset":false,"isSlot":false,"src":"6538:9:208","valueSize":1},{"declaration":108087,"isOffset":false,"isSlot":false,"src":"6589:9:208","valueSize":1},{"declaration":108096,"isOffset":false,"isSlot":false,"src":"4782:10:208","valueSize":1},{"declaration":108093,"isOffset":false,"isSlot":false,"src":"6361:8:208","valueSize":1},{"declaration":108081,"isOffset":false,"isSlot":false,"src":"6449:7:208","valueSize":1},{"declaration":108085,"isOffset":false,"isSlot":false,"src":"6491:6:208","valueSize":1}],"id":108102,"nodeType":"InlineAssembly","src":"4681:2027:208"},{"expression":{"id":108103,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108093,"src":"6724:8:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108091,"id":108104,"nodeType":"Return","src":"6717:15:208"}]},"documentation":{"id":108079,"nodeType":"StructuredDocumentation","src":"3986:428:208","text":"@notice Perform a low level call without copying any returndata. This function\n will revert if the call cannot be performed with the specified minimum\n gas.\n @param _target Address to call\n @param _minGas The minimum amount of gas that may be passed to the call\n @param _value Amount of value to pass to the call\n @param _calldata Calldata to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"callWithMinGas","nameLocation":"4428:14:208","parameters":{"id":108088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108081,"mutability":"mutable","name":"_target","nameLocation":"4460:7:208","nodeType":"VariableDeclaration","scope":108106,"src":"4452:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108080,"name":"address","nodeType":"ElementaryTypeName","src":"4452:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108083,"mutability":"mutable","name":"_minGas","nameLocation":"4485:7:208","nodeType":"VariableDeclaration","scope":108106,"src":"4477:15:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108082,"name":"uint256","nodeType":"ElementaryTypeName","src":"4477:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108085,"mutability":"mutable","name":"_value","nameLocation":"4510:6:208","nodeType":"VariableDeclaration","scope":108106,"src":"4502:14:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108084,"name":"uint256","nodeType":"ElementaryTypeName","src":"4502:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108087,"mutability":"mutable","name":"_calldata","nameLocation":"4539:9:208","nodeType":"VariableDeclaration","scope":108106,"src":"4526:22:208","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":108086,"name":"bytes","nodeType":"ElementaryTypeName","src":"4526:5:208","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4442:112:208"},"returnParameters":{"id":108091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108106,"src":"4589:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108089,"name":"bool","nodeType":"ElementaryTypeName","src":"4589:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4588:6:208"},"scope":108107,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeCall","contractDependencies":[],"contractKind":"library","documentation":{"id":108021,"nodeType":"StructuredDocumentation","src":"57:61:208","text":"@title SafeCall\n @notice Perform low level safe calls"},"fullyImplemented":true,"linearizedBaseContracts":[108107],"name":"SafeCall","nameLocation":"126:8:208","scope":108108,"usedErrors":[]}],"license":"MIT"},"id":208}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;978:554;;;;;;:::i;:::-;;:::i;:::-;;;1968:25:16;;;1956:2;1941:18;978:554:10;1822:177:16;1574:114:10;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;978:554::-;1080:7;1099:32;1146:90;;;;;;;;137:1:6;1166:9:10;;1146:90;;;;1203:8;1146:90;;;;;;1224:9;1146:90;;;;;;1185:6;;1146:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1146:90:10;;;;-1:-1:-1;1099:137:10;;-1:-1:-1;1146:90:10;-1:-1:-1;1261:21:10;;-1:-1:-1;1099:137:10;1261:7;:21::i;:::-;137:1:6;1296:14:10;;;;;;;;;;:18;1247:35;;-1:-1:-1;1296:31:10;1292:84;;1350:15;;;;;;;;;;;;;;1292:84;1386:22;;;:16;1418:14;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:12;;1418:14;:29;;;;;;;;:::i;:::-;;;;;1479:10;1463:41;;1474:3;1463:41;1491:12;1463:41;;;;;;:::i;:::-;;;;;;;;1522:3;978:554;-1:-1:-1;;;;;;978:554:10:o;1574:114::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:9:10;:14;;;;;;;;;;;;1660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:14;1660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:114;;;:::o;1818:201::-;1891:7;1944:12;:19;;;1965:12;:21;;;1988:12;:22;;;1927:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1917:95;;;;;;1910:102;;1818:201;;;:::o;14:250:16:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:16;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:16:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;:::-;765:53;604:220;-1:-1:-1;;;604:220:16:o;829:988::-;939:6;947;955;963;1016:2;1004:9;995:7;991:23;987:32;984:52;;;1032:1;1029;1022:12;984:52;1072:9;1059:23;1101:18;1142:2;1134:6;1131:14;1128:34;;;1158:1;1155;1148:12;1128:34;1196:6;1185:9;1181:22;1171:32;;1241:7;1234:4;1230:2;1226:13;1222:27;1212:55;;1263:1;1260;1253:12;1212:55;1303:2;1290:16;1329:2;1321:6;1318:14;1315:34;;;1345:1;1342;1335:12;1315:34;1392:7;1385:4;1376:6;1372:2;1368:15;1364:26;1361:39;1358:59;;;1413:1;1410;1403:12;1358:59;1444:4;1436:13;;;;-1:-1:-1;1468:6:16;-1:-1:-1;;1509:20:16;;1496:34;1570:42;1559:54;;1549:65;;1539:93;;1628:1;1625;1618:12;1539:93;1651:5;-1:-1:-1;1708:2:16;1693:18;;1680:32;1750:15;;1743:23;1731:36;;1721:64;;1781:1;1778;1771:12;1721:64;829:988;;;;-1:-1:-1;829:988:16;;-1:-1:-1;;829:988:16:o;2004:180::-;2063:6;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;-1:-1:-1;2155:23:16;;2004:180;-1:-1:-1;2004:180:16:o;2189:594::-;2378:2;2367:9;2360:21;2423:6;2417:13;2412:2;2401:9;2397:18;2390:41;2495:42;2489:2;2481:6;2477:15;2471:22;2467:71;2462:2;2451:9;2447:18;2440:99;2607:2;2599:6;2595:15;2589:22;2582:30;2575:38;2570:2;2559:9;2555:18;2548:66;2341:4;2661:2;2653:6;2649:15;2643:22;2703:4;2696;2685:9;2681:20;2674:34;2725:52;2772:3;2761:9;2757:19;2743:12;2725:52;:::i;:::-;2717:60;2189:594;-1:-1:-1;;;;2189:594:16:o;2788:184::-;2840:77;2837:1;2830:88;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:437;3056:1;3052:12;;;;3099;;;3120:61;;3174:4;3166:6;3162:17;3152:27;;3120:61;3227:2;3219:6;3216:14;3196:18;3193:38;3190:218;;3264:77;3261:1;3254:88;3365:4;3362:1;3355:15;3393:4;3390:1;3383:15;3190:218;;2977:437;;;:::o;3545:545::-;3647:2;3642:3;3639:11;3636:448;;;3683:1;3708:5;3704:2;3697:17;3753:4;3749:2;3739:19;3823:2;3811:10;3807:19;3804:1;3800:27;3794:4;3790:38;3859:4;3847:10;3844:20;3841:47;;;-1:-1:-1;3882:4:16;3841:47;3937:2;3932:3;3928:12;3925:1;3921:20;3915:4;3911:31;3901:41;;3992:82;4010:2;4003:5;4000:13;3992:82;;;4055:17;;;4036:1;4025:13;3992:82;;;3996:3;;;3636:448;3545:545;;;:::o;4326:1471::-;4452:3;4446:10;4479:18;4471:6;4468:30;4465:56;;;4501:18;;:::i;:::-;4530:97;4620:6;4580:38;4612:4;4606:11;4580:38;:::i;:::-;4574:4;4530:97;:::i;:::-;4682:4;;4746:2;4735:14;;4763:1;4758:782;;;;5584:1;5601:6;5598:89;;;-1:-1:-1;5653:19:16;;;5647:26;5598:89;4232:66;4223:1;4219:11;;;4215:84;4211:89;4201:100;4307:1;4303:11;;;4198:117;5700:81;;4728:1063;;4758:782;3492:1;3485:14;;;3529:4;3516:18;;4806:66;4794:79;;;4971:236;4985:7;4982:1;4979:14;4971:236;;;5074:19;;;5068:26;5053:42;;5166:27;;;;5134:1;5122:14;;;;5001:19;;4971:236;;;4975:3;5235:6;5226:7;5223:19;5220:261;;;5296:19;;;5290:26;5397:66;5379:1;5375:14;;;5391:3;5371:24;5367:97;5363:102;5348:118;5333:134;;5220:261;-1:-1:-1;;;;;5527:1:16;5511:14;;;5507:22;5494:36;;-1:-1:-1;4326:1471:16:o;5802:576::-;6007:3;6045:6;6039:13;6061:66;6120:6;6115:3;6108:4;6100:6;6096:17;6061:66;:::i;:::-;6196:2;6192:15;;;;6209:66;6188:88;6149:16;;;;6174:103;;;6325:14;;6318:22;6313:3;6309:32;6304:2;6293:14;;6286:56;6369:2;6358:14;;5802:576;-1:-1:-1;;5802:576:16:o","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000020\",\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/SchemaRegistry.sol\":{\"keccak256\":\"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68\",\"dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/SchemaRegistry.sol":{"keccak256":"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd","urls":["bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68","dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3645,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"_registry","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)"},{"astId":3651,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(ISchemaResolver)4157":{"encoding":"inplace","label":"contract ISchemaResolver","numberOfBytes":"20"},"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct SchemaRecord)","numberOfBytes":"32","value":"t_struct(SchemaRecord)3587_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(SchemaRecord)3587_storage":{"encoding":"inplace","label":"struct SchemaRecord","numberOfBytes":"96","members":[{"astId":3579,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"uid","offset":0,"slot":"0","type":"t_bytes32"},{"astId":3582,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"resolver","offset":0,"slot":"1","type":"t_contract(ISchemaResolver)4157"},{"astId":3584,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"revocable","offset":20,"slot":"1","type":"t_bool"},{"astId":3586,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"schema","offset":0,"slot":"2","type":"t_string_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"notice":"The global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"SchemaRegistry"},"id":10}
{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;978:554;;;;;;:::i;:::-;;:::i;:::-;;;1968:25:16;;;1956:2;1941:18;978:554:10;1822:177:16;1574:114:10;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;978:554::-;1080:7;1099:32;1146:90;;;;;;;;137:1:6;1166:9:10;;1146:90;;;;1203:8;1146:90;;;;;;1224:9;1146:90;;;;;;1185:6;;1146:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1146:90:10;;;;-1:-1:-1;1099:137:10;;-1:-1:-1;1146:90:10;-1:-1:-1;1261:21:10;;-1:-1:-1;1099:137:10;1261:7;:21::i;:::-;137:1:6;1296:14:10;;;;;;;;;;:18;1247:35;;-1:-1:-1;1296:31:10;1292:84;;1350:15;;;;;;;;;;;;;;1292:84;1386:22;;;:16;1418:14;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:12;;1418:14;:29;;;;;;;;:::i;:::-;;;;;1479:10;1463:41;;1474:3;1463:41;1491:12;1463:41;;;;;;:::i;:::-;;;;;;;;1522:3;978:554;-1:-1:-1;;;;;;978:554:10:o;1574:114::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:9:10;:14;;;;;;;;;;;;1660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:14;1660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:114;;;:::o;1818:201::-;1891:7;1944:12;:19;;;1965:12;:21;;;1988:12;:22;;;1927:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1917:95;;;;;;1910:102;;1818:201;;;:::o;14:250:16:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:16;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:16:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;:::-;765:53;604:220;-1:-1:-1;;;604:220:16:o;829:988::-;939:6;947;955;963;1016:2;1004:9;995:7;991:23;987:32;984:52;;;1032:1;1029;1022:12;984:52;1072:9;1059:23;1101:18;1142:2;1134:6;1131:14;1128:34;;;1158:1;1155;1148:12;1128:34;1196:6;1185:9;1181:22;1171:32;;1241:7;1234:4;1230:2;1226:13;1222:27;1212:55;;1263:1;1260;1253:12;1212:55;1303:2;1290:16;1329:2;1321:6;1318:14;1315:34;;;1345:1;1342;1335:12;1315:34;1392:7;1385:4;1376:6;1372:2;1368:15;1364:26;1361:39;1358:59;;;1413:1;1410;1403:12;1358:59;1444:4;1436:13;;;;-1:-1:-1;1468:6:16;-1:-1:-1;;1509:20:16;;1496:34;1570:42;1559:54;;1549:65;;1539:93;;1628:1;1625;1618:12;1539:93;1651:5;-1:-1:-1;1708:2:16;1693:18;;1680:32;1750:15;;1743:23;1731:36;;1721:64;;1781:1;1778;1771:12;1721:64;829:988;;;;-1:-1:-1;829:988:16;;-1:-1:-1;;829:988:16:o;2004:180::-;2063:6;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;-1:-1:-1;2155:23:16;;2004:180;-1:-1:-1;2004:180:16:o;2189:594::-;2378:2;2367:9;2360:21;2423:6;2417:13;2412:2;2401:9;2397:18;2390:41;2495:42;2489:2;2481:6;2477:15;2471:22;2467:71;2462:2;2451:9;2447:18;2440:99;2607:2;2599:6;2595:15;2589:22;2582:30;2575:38;2570:2;2559:9;2555:18;2548:66;2341:4;2661:2;2653:6;2649:15;2643:22;2703:4;2696;2685:9;2681:20;2674:34;2725:52;2772:3;2761:9;2757:19;2743:12;2725:52;:::i;:::-;2717:60;2189:594;-1:-1:-1;;;;2189:594:16:o;2788:184::-;2840:77;2837:1;2830:88;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:437;3056:1;3052:12;;;;3099;;;3120:61;;3174:4;3166:6;3162:17;3152:27;;3120:61;3227:2;3219:6;3216:14;3196:18;3193:38;3190:218;;3264:77;3261:1;3254:88;3365:4;3362:1;3355:15;3393:4;3390:1;3383:15;3190:218;;2977:437;;;:::o;3545:545::-;3647:2;3642:3;3639:11;3636:448;;;3683:1;3708:5;3704:2;3697:17;3753:4;3749:2;3739:19;3823:2;3811:10;3807:19;3804:1;3800:27;3794:4;3790:38;3859:4;3847:10;3844:20;3841:47;;;-1:-1:-1;3882:4:16;3841:47;3937:2;3932:3;3928:12;3925:1;3921:20;3915:4;3911:31;3901:41;;3992:82;4010:2;4003:5;4000:13;3992:82;;;4055:17;;;4036:1;4025:13;3992:82;;;3996:3;;;3636:448;3545:545;;;:::o;4326:1471::-;4452:3;4446:10;4479:18;4471:6;4468:30;4465:56;;;4501:18;;:::i;:::-;4530:97;4620:6;4580:38;4612:4;4606:11;4580:38;:::i;:::-;4574:4;4530:97;:::i;:::-;4682:4;;4746:2;4735:14;;4763:1;4758:782;;;;5584:1;5601:6;5598:89;;;-1:-1:-1;5653:19:16;;;5647:26;5598:89;4232:66;4223:1;4219:11;;;4215:84;4211:89;4201:100;4307:1;4303:11;;;4198:117;5700:81;;4728:1063;;4758:782;3492:1;3485:14;;;3529:4;3516:18;;4806:66;4794:79;;;4971:236;4985:7;4982:1;4979:14;4971:236;;;5074:19;;;5068:26;5053:42;;5166:27;;;;5134:1;5122:14;;;;5001:19;;4971:236;;;4975:3;5235:6;5226:7;5223:19;5220:261;;;5296:19;;;5290:26;5397:66;5379:1;5375:14;;;5391:3;5371:24;5367:97;5363:102;5348:118;5333:134;;5220:261;-1:-1:-1;;;;;5527:1:16;5511:14;;;5507:22;5494:36;;-1:-1:-1;4326:1471:16:o;5802:576::-;6007:3;6045:6;6039:13;6061:66;6120:6;6115:3;6108:4;6100:6;6096:17;6061:66;:::i;:::-;6196:2;6192:15;;;;6209:66;6188:88;6149:16;;;;6174:103;;;6325:14;;6318:22;6313:3;6309:32;6304:2;6293:14;;6286:56;6369:2;6358:14;;5802:576;-1:-1:-1;;5802:576:16:o","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000020\",\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/SchemaRegistry.sol\":{\"keccak256\":\"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68\",\"dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/SchemaRegistry.sol":{"keccak256":"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd","urls":["bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68","dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3645,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"_registry","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)"},{"astId":3651,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(ISchemaResolver)4157":{"encoding":"inplace","label":"contract ISchemaResolver","numberOfBytes":"20"},"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct SchemaRecord)","numberOfBytes":"32","value":"t_struct(SchemaRecord)3587_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(SchemaRecord)3587_storage":{"encoding":"inplace","label":"struct SchemaRecord","numberOfBytes":"96","members":[{"astId":3579,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"uid","offset":0,"slot":"0","type":"t_bytes32"},{"astId":3582,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"resolver","offset":0,"slot":"1","type":"t_contract(ISchemaResolver)4157"},{"astId":3584,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"revocable","offset":20,"slot":"1","type":"t_bool"},{"astId":3586,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"schema","offset":0,"slot":"2","type":"t_string_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"notice":"The global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"SchemaRegistry"},"ast":{"absolutePath":"src/EAS/SchemaRegistry.sol","id":3755,"exportedSymbols":{"EMPTY_UID":[1164],"ISchemaRegistry":[3621],"ISchemaResolver":[4157],"ISemver":[4922],"MAX_GAP":[1210],"SchemaRecord":[3587],"SchemaRegistry":[3754]},"nodeType":"SourceUnit","src":"32:1990:10","nodes":[{"id":3623,"nodeType":"PragmaDirective","src":"32:23:10","nodes":[],"literals":["solidity","0.8",".19"]},{"id":3625,"nodeType":"ImportDirective","src":"57:52:10","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":4923,"symbolAliases":[{"foreign":{"id":3624,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"66:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3627,"nodeType":"ImportDirective","src":"110:71:10","nodes":[],"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","file":"src/EAS/resolver/ISchemaResolver.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":4158,"symbolAliases":[{"foreign":{"id":3626,"name":"ISchemaResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"119:15:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3630,"nodeType":"ImportDirective","src":"182:56:10","nodes":[],"absolutePath":"src/EAS/Common.sol","file":"src/EAS/Common.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":1336,"symbolAliases":[{"foreign":{"id":3628,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"191:9:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3629,"name":"MAX_GAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"202:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3633,"nodeType":"ImportDirective","src":"239:76:10","nodes":[],"absolutePath":"src/EAS/ISchemaRegistry.sol","file":"src/EAS/ISchemaRegistry.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":3622,"symbolAliases":[{"foreign":{"id":3631,"name":"ISchemaRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3621,"src":"248:15:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3632,"name":"SchemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3587,"src":"265:12:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3754,"nodeType":"ContractDefinition","src":"518:1503:10","nodes":[{"id":3640,"nodeType":"ErrorDefinition","src":"576:22:10","nodes":[],"errorSelector":"23369fa6","name":"AlreadyExists","nameLocation":"582:13:10","parameters":{"id":3639,"nodeType":"ParameterList","parameters":[],"src":"595:2:10"}},{"id":3645,"nodeType":"VariableDeclaration","src":"668:67:10","nodes":[],"constant":false,"mutability":"mutable","name":"_registry","nameLocation":"726:9:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord)"},"typeName":{"id":3644,"keyName":"uid","keyNameLocation":"684:3:10","keyType":{"id":3641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"676:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"668:49:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord)"},"valueName":"schemaRecord","valueNameLocation":"704:12:10","valueType":{"id":3643,"nodeType":"UserDefinedTypeName","pathNode":{"id":3642,"name":"SchemaRecord","nameLocations":["691:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"691:12:10"},"referencedDeclaration":3587,"src":"691:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}}},"visibility":"private"},{"id":3651,"nodeType":"VariableDeclaration","src":"791:34:10","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"820:5:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":3646,"name":"uint256","nodeType":"ElementaryTypeName","src":"791:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"length":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":3649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":3647,"name":"MAX_GAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"799:7:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"809:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"799:11:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"ArrayTypeName","src":"791:20:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":3655,"nodeType":"VariableDeclaration","src":"895:40:10","nodes":[],"baseFunctions":[4921],"constant":true,"documentation":{"id":3652,"nodeType":"StructuredDocumentation","src":"832:58:10","text":"@notice Semantic version.\n @custom:semver 1.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"918:7:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3653,"name":"string","nodeType":"ElementaryTypeName","src":"895:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":3654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"928:7:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":3717,"nodeType":"FunctionDefinition","src":"978:554:10","nodes":[],"body":{"id":3716,"nodeType":"Block","src":"1089:443:10","nodes":[],"statements":[{"assignments":[3670],"declarations":[{"constant":false,"id":3670,"mutability":"mutable","name":"schemaRecord","nameLocation":"1119:12:10","nodeType":"VariableDeclaration","scope":3716,"src":"1099:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3669,"nodeType":"UserDefinedTypeName","pathNode":{"id":3668,"name":"SchemaRecord","nameLocations":["1099:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1099:12:10"},"referencedDeclaration":3587,"src":"1099:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"id":3677,"initialValue":{"arguments":[{"id":3672,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"1166:9:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3673,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"1185:6:10","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":3674,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"1203:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},{"id":3675,"name":"revocable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"1224:9:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3671,"name":"SchemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3587,"src":"1146:12:10","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SchemaRecord_$3587_storage_ptr_$","typeString":"type(struct SchemaRecord storage pointer)"}},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1161:3:10","1177:6:10","1193:8:10","1213:9:10"],"names":["uid","schema","resolver","revocable"],"nodeType":"FunctionCall","src":"1146:90:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"nodeType":"VariableDeclarationStatement","src":"1099:137:10"},{"assignments":[3679],"declarations":[{"constant":false,"id":3679,"mutability":"mutable","name":"uid","nameLocation":"1255:3:10","nodeType":"VariableDeclaration","scope":3716,"src":"1247:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1247:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3683,"initialValue":{"arguments":[{"id":3681,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1269:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}],"id":3680,"name":"_getUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3753,"src":"1261:7:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SchemaRecord_$3587_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct SchemaRecord memory) pure returns (bytes32)"}},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1247:35:10"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":3684,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1296:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3686,"indexExpression":{"id":3685,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1306:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1296:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"id":3687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:3:10","memberName":"uid","nodeType":"MemberAccess","referencedDeclaration":3579,"src":"1296:18:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3688,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"1318:9:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1296:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3694,"nodeType":"IfStatement","src":"1292:84:10","trueBody":{"id":3693,"nodeType":"Block","src":"1329:47:10","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3690,"name":"AlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3640,"src":"1350:13:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3692,"nodeType":"RevertStatement","src":"1343:22:10"}]}},{"expression":{"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3695,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1386:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1399:3:10","memberName":"uid","nodeType":"MemberAccess","referencedDeclaration":3579,"src":"1386:16:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3698,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1405:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1386:22:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3700,"nodeType":"ExpressionStatement","src":"1386:22:10"},{"expression":{"id":3705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3701,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1418:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3703,"indexExpression":{"id":3702,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1428:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1418:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3704,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1435:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"src":"1418:29:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"id":3706,"nodeType":"ExpressionStatement","src":"1418:29:10"},{"eventCall":{"arguments":[{"id":3708,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1474:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1479:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:10","memberName":"sender","nodeType":"MemberAccess","src":"1479:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3711,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1491:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}],"id":3707,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"1463:10:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_struct$_SchemaRecord_$3587_memory_ptr_$returns$__$","typeString":"function (bytes32,address,struct SchemaRecord memory)"}},"id":3712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:41:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3713,"nodeType":"EmitStatement","src":"1458:46:10"},{"expression":{"id":3714,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1522:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3667,"id":3715,"nodeType":"Return","src":"1515:10:10"}]},"baseFunctions":[3611],"documentation":{"id":3656,"nodeType":"StructuredDocumentation","src":"942:31:10","text":"@inheritdoc ISchemaRegistry"},"functionSelector":"60d7a278","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"987:8:10","parameters":{"id":3664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"schema","nameLocation":"1012:6:10","nodeType":"VariableDeclaration","scope":3717,"src":"996:22:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3657,"name":"string","nodeType":"ElementaryTypeName","src":"996:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3661,"mutability":"mutable","name":"resolver","nameLocation":"1036:8:10","nodeType":"VariableDeclaration","scope":3717,"src":"1020:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3660,"nodeType":"UserDefinedTypeName","pathNode":{"id":3659,"name":"ISchemaResolver","nameLocations":["1020:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"1020:15:10"},"referencedDeclaration":4157,"src":"1020:15:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3663,"mutability":"mutable","name":"revocable","nameLocation":"1051:9:10","nodeType":"VariableDeclaration","scope":3717,"src":"1046:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3662,"name":"bool","nodeType":"ElementaryTypeName","src":"1046:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"995:66:10"},"returnParameters":{"id":3667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3717,"src":"1080:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1080:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1079:9:10"},"scope":3754,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3731,"nodeType":"FunctionDefinition","src":"1574:114:10","nodes":[],"body":{"id":3730,"nodeType":"Block","src":"1650:38:10","nodes":[],"statements":[{"expression":{"baseExpression":{"id":3726,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1667:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3728,"indexExpression":{"id":3727,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"1677:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1667:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"functionReturnParameters":3725,"id":3729,"nodeType":"Return","src":"1660:21:10"}]},"baseFunctions":[3620],"documentation":{"id":3718,"nodeType":"StructuredDocumentation","src":"1538:31:10","text":"@inheritdoc ISchemaRegistry"},"functionSelector":"a2ea7c6e","implemented":true,"kind":"function","modifiers":[],"name":"getSchema","nameLocation":"1583:9:10","parameters":{"id":3721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3720,"mutability":"mutable","name":"uid","nameLocation":"1601:3:10","nodeType":"VariableDeclaration","scope":3731,"src":"1593:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1593:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1592:13:10"},"returnParameters":{"id":3725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3731,"src":"1629:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3723,"nodeType":"UserDefinedTypeName","pathNode":{"id":3722,"name":"SchemaRecord","nameLocations":["1629:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1629:12:10"},"referencedDeclaration":3587,"src":"1629:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1628:21:10"},"scope":3754,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3753,"nodeType":"FunctionDefinition","src":"1818:201:10","nodes":[],"body":{"id":3752,"nodeType":"Block","src":"1900:119:10","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3743,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1944:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:10","memberName":"schema","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"1944:19:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3745,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1965:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1978:8:10","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":3582,"src":"1965:21:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},{"expression":{"id":3747,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1988:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2001:9:10","memberName":"revocable","nodeType":"MemberAccess","referencedDeclaration":3584,"src":"1988:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1927:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1931:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"1927:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1927:84:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3740,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1917:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:95:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3739,"id":3751,"nodeType":"Return","src":"1910:102:10"}]},"documentation":{"id":3732,"nodeType":"StructuredDocumentation","src":"1694:119:10","text":"@dev Calculates a UID for a given schema.\n @param schemaRecord The input schema.\n @return schema UID."},"implemented":true,"kind":"function","modifiers":[],"name":"_getUID","nameLocation":"1827:7:10","parameters":{"id":3736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3735,"mutability":"mutable","name":"schemaRecord","nameLocation":"1855:12:10","nodeType":"VariableDeclaration","scope":3753,"src":"1835:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3734,"nodeType":"UserDefinedTypeName","pathNode":{"id":3733,"name":"SchemaRecord","nameLocations":["1835:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1835:12:10"},"referencedDeclaration":3587,"src":"1835:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1834:34:10"},"returnParameters":{"id":3739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3753,"src":"1891:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1891:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1890:9:10"},"scope":3754,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":3635,"name":"ISchemaRegistry","nameLocations":["545:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":3621,"src":"545:15:10"},"id":3636,"nodeType":"InheritanceSpecifier","src":"545:15:10"},{"baseName":{"id":3637,"name":"ISemver","nameLocations":["562:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":4922,"src":"562:7:10"},"id":3638,"nodeType":"InheritanceSpecifier","src":"562:7:10"}],"canonicalName":"SchemaRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":3634,"nodeType":"StructuredDocumentation","src":"317:201:10","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000020\n @title SchemaRegistry\n @notice The global attestation schemas for the Ethereum Attestation Service protocol."},"fullyImplemented":true,"linearizedBaseContracts":[3754,4922,3621],"name":"SchemaRegistry","nameLocation":"527:14:10","scope":3755,"usedErrors":[3640]}],"license":"MIT"},"id":10}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"l1FeeWallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b5060405161091638038061091683398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c0516107ce61014860003960008181610181015281816103c701526104020152600081816092015281816101f301528181610316015281816103a50152818161043b01526105a20152600081816101c2015261021901526107ce6000f3fe6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:147:-:0;;;851:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;998:10:147;1010:20;1032:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;851:208:147;;;436:836;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;436:836:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;519:40:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;1184:86:147;;;;;;;;;;-1:-1:-1;1254:9:147;1184:86;;2732:832:220;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":450,"length":32},{"start":537,"length":32}],"105744":[{"start":146,"length":32},{"start":499,"length":32},{"start":790,"length":32},{"start":933,"length":32},{"start":1083,"length":32},{"start":1442,"length":32}],"105748":[{"start":385,"length":32},{"start":967,"length":32},{"start":1026,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","l1FeeWallet()":"d4ff9218","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000011\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}},\"l1FeeWallet()\":{\"custom:legacy\":\"@notice Legacy getter for the recipient address.\",\"returns\":{\"_0\":\"The recipient address.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"SequencerFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the SequencerFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/SequencerFeeVault.sol\":\"SequencerFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/L2/SequencerFeeVault.sol\":{\"keccak256\":\"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c\",\"dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"custom:legacy":"@notice Legacy getter for the recipient address.","returns":{"_0":"The recipient address."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/SequencerFeeVault.sol":"SequencerFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/L2/SequencerFeeVault.sol":{"keccak256":"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0","urls":["bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c","dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/SequencerFeeVault.sol:SequencerFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"returns":{"_0":"The recipient address."}}},"title":"SequencerFeeVault"},"id":147}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"l1FeeWallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b5060405161091638038061091683398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c0516107ce61014860003960008181610181015281816103c701526104020152600081816092015281816101f301528181610316015281816103a50152818161043b01526105a20152600081816101c2015261021901526107ce6000f3fe6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:157:-:0;;;851:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:236;;;;2461:44;;;;998:10:157;1010:20;1032:18;;2515:39:236;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;851:208:157;;;436:836;;14:518:382;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:382;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:382;-1:-1:-1;480:1:382;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;436:836:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:157:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:236;;;;;;;;;;;;;;;;;;190:42:382;178:55;;;160:74;;148:2;133:18;820:34:236;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;519:40:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:236:-;;;;;;;;;;;;;;;;;;;1152:25:382;;;1140:2;1125:18;1188:29:236;1006:177:382;927:53:236;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;1184:86:157;;;;;;;;;;-1:-1:-1;1254:9:157;1184:86;;2732:832:236;2817:21;2792;:46;;2771:167;;;;;;;2117:2:382;2771:167:236;;;2099:21:382;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:236;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:236;;;2887:25:382;;;3053:9:236;2931:42:382;3009:15;3004:2;2989:18;;2982:43;3064:10:236;3041:18:382;;;3034:43;3035:40:236;;;;;;;2875:2:382;3035:40:236;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:382;3292:68:236;;;4006:21:382;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:236;3822:412:382;3292:68:236;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:236;;3391:156;;;;;1903:42:206;;3391:68:236;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:382:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:382;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:382:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:382:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:382;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"113335":[{"start":450,"length":32},{"start":537,"length":32}],"113338":[{"start":146,"length":32},{"start":499,"length":32},{"start":790,"length":32},{"start":933,"length":32},{"start":1083,"length":32},{"start":1442,"length":32}],"113342":[{"start":385,"length":32},{"start":967,"length":32},{"start":1026,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","l1FeeWallet()":"d4ff9218","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000011\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}},\"l1FeeWallet()\":{\"custom:legacy\":\"@notice Legacy getter for the recipient address.\",\"returns\":{\"_0\":\"The recipient address.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"SequencerFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the SequencerFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/SequencerFeeVault.sol\":\"SequencerFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc\",\"dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92\",\"dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78\"]},\"src/L2/SequencerFeeVault.sol\":{\"keccak256\":\"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c\",\"dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426\",\"dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8\",\"dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633\",\"dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893\",\"dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc\",\"dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"custom:legacy":"@notice Legacy getter for the recipient address.","returns":{"_0":"The recipient address."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/SequencerFeeVault.sol":"SequencerFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x1f8894a2ab02b402c2e9d4d94b8f3d3bc4423e4b1236fb167f7e705f2a115e80","urls":["bzz-raw://291b05252e8e5394ec13718d6f2d15750f55f11d79224961abcd1c03689f66fc","dweb:/ipfs/QmRGQXadbHNy3ZHbCNCKU8XPg4wqvQBzRMAk5JTRucioFZ"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x6bf8a9d50090b01ef6a2bb7024c1501f69017033eeb8c877a47472df4ee52525","urls":["bzz-raw://d135e7bd247fa9fab854c565769bf649853d9063dbced7027123e0ac6d594d92","dweb:/ipfs/QmaPepUSoCR8XuWrQXFJUCkttKznvyXMawAoNJ574Q4Y78"],"license":"MIT"},"src/L2/SequencerFeeVault.sol":{"keccak256":"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0","urls":["bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c","dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x6d9560eba066364ec6b3fbdd8c085092a1d030a58c649063fa191cf4b3ccf464","urls":["bzz-raw://5674512bafb162f62c9127f45894c0f74d9a269a878eaf5024a6e03430a1b426","dweb:/ipfs/QmRU2GR7YKueAgtNbMG8kq5na89ZFiUM56jVu4Gda8MVxa"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/GasPayingToken.sol":{"keccak256":"0xf19e06af2387c0febaa4a77f93e35dfaf367cac318c804b9023eba0cb5b35237","urls":["bzz-raw://3c1b26566a54ea67c802261882e26322baf6100480613c6582337fb85d7d82d8","dweb:/ipfs/QmPt5FLyGAeJVx1tDXHP55B91xgn4AwQk91WaCJkFV7kTw"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/L1BlockErrors.sol":{"keccak256":"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc","urls":["bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594","dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xde29a923805aa79ce5e9927e89cb7f0e599479f3b9b519186dca025c14cf3e18","urls":["bzz-raw://86ff304617d297ecaf7ef38ad7d94c5dfc81c49c037b490d1119f50493d2c633","dweb:/ipfs/QmNcyXWMNs2DFA7dwR3dUcjVAK1zHFyPkQncCcYkGDnD3M"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x98f74ca30a436a57a5f84450f250b6a50b48f60ed1cabf530db2b9a63fd9159f","urls":["bzz-raw://b5b8ab5ef3d206ea7be9d12ce03775a75358f2c7950786ab53c33cd781a8e893","dweb:/ipfs/QmbN7tQx7jwcRvZDbT54FPSgi572X2LRT8uKNGzj1ctG48"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x03c956d19bac01a908a82fe7c06380e524517574a1fbf2879f08af4e9909067e","urls":["bzz-raw://d7c30ff72881f7a25821ccd69706c257952a806d6551052f672fb1752a9593bc","dweb:/ipfs/QmSXmRqCupyKpSJ2bg9cwp49EgtQB4efacZQyaJhw8wvtm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":113349,"contract":"src/L2/SequencerFeeVault.sol:SequencerFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"returns":{"_0":"The recipient address."}}},"title":"SequencerFeeVault"},"ast":{"absolutePath":"src/L2/SequencerFeeVault.sol","id":93778,"exportedSymbols":{"FeeVault":[113482],"ISemver":[113621],"SequencerFeeVault":[93777]},"nodeType":"SourceUnit","src":"32:1241:157","nodes":[{"id":93737,"nodeType":"PragmaDirective","src":"32:23:157","nodes":[],"literals":["solidity","0.8",".15"]},{"id":93739,"nodeType":"ImportDirective","src":"57:52:157","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":93778,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":93738,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93741,"nodeType":"ImportDirective","src":"110:54:157","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":93778,"sourceUnit":113483,"symbolAliases":[{"foreign":{"id":93740,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113482,"src":"119:8:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93777,"nodeType":"ContractDefinition","src":"436:836:157","nodes":[{"id":93750,"nodeType":"VariableDeclaration","src":"519:40:157","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":93747,"nodeType":"StructuredDocumentation","src":"490:24:157","text":"@custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"542:7:157","scope":93777,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":93748,"name":"string","nodeType":"ElementaryTypeName","src":"519:6:157","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":93749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"552:7:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":93767,"nodeType":"FunctionDefinition","src":"851:208:157","nodes":[],"body":{"id":93766,"nodeType":"Block","src":"1056:3:157","nodes":[],"statements":[]},"documentation":{"id":93751,"nodeType":"StructuredDocumentation","src":"566:280:157","text":"@notice Constructs the SequencerFeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":93761,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93753,"src":"998:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93762,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93755,"src":"1010:20:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93763,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93758,"src":"1032:18:157","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":93764,"kind":"baseConstructorSpecifier","modifierName":{"id":93760,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"989:8:157"},"nodeType":"ModifierInvocation","src":"989:62:157"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":93759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93753,"mutability":"mutable","name":"_recipient","nameLocation":"880:10:157","nodeType":"VariableDeclaration","scope":93767,"src":"872:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93752,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93755,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"908:20:157","nodeType":"VariableDeclaration","scope":93767,"src":"900:28:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93754,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93758,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"956:18:157","nodeType":"VariableDeclaration","scope":93767,"src":"938:36:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":93757,"nodeType":"UserDefinedTypeName","pathNode":{"id":93756,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":113332,"src":"938:17:157"},"referencedDeclaration":113332,"src":"938:17:157","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$113332","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"862:118:157"},"returnParameters":{"id":93765,"nodeType":"ParameterList","parameters":[],"src":"1056:0:157"},"scope":93777,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":93776,"nodeType":"FunctionDefinition","src":"1184:86:157","nodes":[],"body":{"id":93775,"nodeType":"Block","src":"1237:33:157","nodes":[],"statements":[{"expression":{"id":93773,"name":"RECIPIENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113338,"src":"1254:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":93772,"id":93774,"nodeType":"Return","src":"1247:16:157"}]},"documentation":{"id":93768,"nodeType":"StructuredDocumentation","src":"1065:114:157","text":"@custom:legacy\n @notice Legacy getter for the recipient address.\n @return The recipient address."},"functionSelector":"d4ff9218","implemented":true,"kind":"function","modifiers":[],"name":"l1FeeWallet","nameLocation":"1193:11:157","parameters":{"id":93769,"nodeType":"ParameterList","parameters":[],"src":"1204:2:157"},"returnParameters":{"id":93772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93776,"src":"1228:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93770,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:9:157"},"scope":93777,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":93743,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":113482,"src":"466:8:157"},"id":93744,"nodeType":"InheritanceSpecifier","src":"466:8:157"},{"baseName":{"id":93745,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"476:7:157"},"id":93746,"nodeType":"InheritanceSpecifier","src":"476:7:157"}],"canonicalName":"SequencerFeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":93742,"nodeType":"StructuredDocumentation","src":"166:270:157","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000011\n @title SequencerFeeVault\n @notice The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during\n transaction processing and block production."},"fullyImplemented":true,"linearizedBaseContracts":[93777,113621,113482],"name":"SequencerFeeVault","nameLocation":"445:17:157","scope":93778,"usedErrors":[]}],"license":"MIT"},"id":157}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:62;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"id":62}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:64:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:64;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:64:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","id":54206,"exportedSymbols":{"Address":[53412],"ECDSA":[54122],"IERC1271":[49670],"SignatureChecker":[54205],"Strings":[53734]},"nodeType":"SourceUnit","src":"123:1586:64","nodes":[{"id":54124,"nodeType":"PragmaDirective","src":"123:23:64","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54125,"nodeType":"ImportDirective","src":"148:21:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":54206,"sourceUnit":54123,"symbolAliases":[],"unitAlias":""},{"id":54126,"nodeType":"ImportDirective","src":"170:24:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../Address.sol","nameLocation":"-1:-1:-1","scope":54206,"sourceUnit":53413,"symbolAliases":[],"unitAlias":""},{"id":54127,"nodeType":"ImportDirective","src":"195:39:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":54206,"sourceUnit":49671,"symbolAliases":[],"unitAlias":""},{"id":54205,"nodeType":"ContractDefinition","src":"531:1177:64","nodes":[{"id":54204,"nodeType":"FunctionDefinition","src":"1039:667:64","nodes":[],"body":{"id":54203,"nodeType":"Block","src":"1181:525:64","nodes":[],"statements":[{"assignments":[54141,54144],"declarations":[{"constant":false,"id":54141,"mutability":"mutable","name":"recovered","nameLocation":"1200:9:64","nodeType":"VariableDeclaration","scope":54203,"src":"1192:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54140,"name":"address","nodeType":"ElementaryTypeName","src":"1192:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54144,"mutability":"mutable","name":"error","nameLocation":"1230:5:64","nodeType":"VariableDeclaration","scope":54203,"src":"1211:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$53744","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":54143,"nodeType":"UserDefinedTypeName","pathNode":{"id":54142,"name":"ECDSA.RecoverError","nodeType":"IdentifierPath","referencedDeclaration":53744,"src":"1211:18:64"},"referencedDeclaration":53744,"src":"1211:18:64","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$53744","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":54150,"initialValue":{"arguments":[{"id":54147,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54133,"src":"1256:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54148,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54135,"src":"1262:9:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54145,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54122,"src":"1239:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$54122_$","typeString":"type(library ECDSA)"}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":53844,"src":"1239:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$53744_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:33:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$53744_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1191:81:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$53744","typeString":"enum ECDSA.RecoverError"},"id":54155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54151,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54144,"src":"1286:5:64","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$53744","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":54152,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54122,"src":"1295:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$54122_$","typeString":"type(library ECDSA)"}},"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":53744,"src":"1295:18:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$53744_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":53739,"src":"1295:26:64","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$53744","typeString":"enum ECDSA.RecoverError"}},"src":"1286:35:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54156,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54141,"src":"1325:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54157,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54131,"src":"1338:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1325:19:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1286:58:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54163,"nodeType":"IfStatement","src":"1282:100:64","trueBody":{"id":54162,"nodeType":"Block","src":"1346:36:64","statements":[{"expression":{"hexValue":"74727565","id":54160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1367:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":54139,"id":54161,"nodeType":"Return","src":"1360:11:64"}]}},{"assignments":[54165,54167],"declarations":[{"constant":false,"id":54165,"mutability":"mutable","name":"success","nameLocation":"1398:7:64","nodeType":"VariableDeclaration","scope":54203,"src":"1393:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54164,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":54167,"mutability":"mutable","name":"result","nameLocation":"1420:6:64","nodeType":"VariableDeclaration","scope":54203,"src":"1407:19:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54166,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54179,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":54172,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49670,"src":"1484:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$49670_$","typeString":"type(contract IERC1271)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":49669,"src":"1484:25:64","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1484:34:64","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54175,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54133,"src":"1520:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54176,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54135,"src":"1526:9:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1461:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1461:22:64","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1461:75:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54168,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54131,"src":"1430:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"1430:17:64","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:116:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1392:154:64"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54180,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54165,"src":"1564:7:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54181,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54167,"src":"1587:6:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1587:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":54183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1604:2:64","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1587:19:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":54199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54188,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54167,"src":"1633:6:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":54190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1642:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:64","typeDescriptions":{}}}],"id":54191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1641:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":54186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1622:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1622:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":54195,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49670,"src":"1663:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$49670_$","typeString":"type(contract IERC1271)"}},"id":54196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":49669,"src":"1663:25:64","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":54197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1663:34:64","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1655:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1655:7:64","typeDescriptions":{}}},"id":54198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1655:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:76:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:134:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":54201,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1563:136:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54139,"id":54202,"nodeType":"Return","src":"1556:143:64"}]},"documentation":{"id":54129,"nodeType":"StructuredDocumentation","src":"562:472:64","text":" @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1048:19:64","parameters":{"id":54136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54131,"mutability":"mutable","name":"signer","nameLocation":"1085:6:64","nodeType":"VariableDeclaration","scope":54204,"src":"1077:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54130,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54133,"mutability":"mutable","name":"hash","nameLocation":"1109:4:64","nodeType":"VariableDeclaration","scope":54204,"src":"1101:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54135,"mutability":"mutable","name":"signature","nameLocation":"1136:9:64","nodeType":"VariableDeclaration","scope":54204,"src":"1123:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54134,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1067:84:64"},"returnParameters":{"id":54139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54204,"src":"1175:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54137,"name":"bool","nodeType":"ElementaryTypeName","src":"1175:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1174:6:64"},"scope":54205,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":54128,"nodeType":"StructuredDocumentation","src":"236:294:64","text":" @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n Argent and Gnosis Safe.\n _Available since v4.1._"},"fullyImplemented":true,"linearizedBaseContracts":[54205],"name":"SignatureChecker","nameLocation":"539:16:64","scope":54206,"usedErrors":[]}],"license":"MIT"},"id":64}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"id":4}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","id":1006,"exportedSymbols":{"Address":[308],"ECDSA":[922],"IERC1271":[13],"SignatureChecker":[1005],"Strings":[534]},"nodeType":"SourceUnit","src":"123:1586:4","nodes":[{"id":924,"nodeType":"PragmaDirective","src":"123:23:4","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":925,"nodeType":"ImportDirective","src":"148:21:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":923,"symbolAliases":[],"unitAlias":""},{"id":926,"nodeType":"ImportDirective","src":"170:24:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../Address.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":309,"symbolAliases":[],"unitAlias":""},{"id":927,"nodeType":"ImportDirective","src":"195:39:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":14,"symbolAliases":[],"unitAlias":""},{"id":1005,"nodeType":"ContractDefinition","src":"531:1177:4","nodes":[{"id":1004,"nodeType":"FunctionDefinition","src":"1039:667:4","nodes":[],"body":{"id":1003,"nodeType":"Block","src":"1181:525:4","nodes":[],"statements":[{"assignments":[941,944],"declarations":[{"constant":false,"id":941,"mutability":"mutable","name":"recovered","nameLocation":"1200:9:4","nodeType":"VariableDeclaration","scope":1003,"src":"1192:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":940,"name":"address","nodeType":"ElementaryTypeName","src":"1192:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":944,"mutability":"mutable","name":"error","nameLocation":"1230:5:4","nodeType":"VariableDeclaration","scope":1003,"src":"1211:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":943,"nodeType":"UserDefinedTypeName","pathNode":{"id":942,"name":"ECDSA.RecoverError","nameLocations":["1211:5:4","1217:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":544,"src":"1211:18:4"},"referencedDeclaration":544,"src":"1211:18:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":950,"initialValue":{"arguments":[{"id":947,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"1256:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":948,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"1262:9:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":945,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"1239:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1245:10:4","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":644,"src":"1239:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$544_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:33:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$544_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1191:81:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":951,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"1286:5:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":952,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"1295:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1301:12:4","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":544,"src":"1295:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$544_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1314:7:4","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":539,"src":"1295:26:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"src":"1286:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":956,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":941,"src":"1325:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":957,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1338:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1325:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1286:58:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":963,"nodeType":"IfStatement","src":"1282:100:4","trueBody":{"id":962,"nodeType":"Block","src":"1346:36:4","statements":[{"expression":{"hexValue":"74727565","id":960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1367:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":939,"id":961,"nodeType":"Return","src":"1360:11:4"}]}},{"assignments":[965,967],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"success","nameLocation":"1398:7:4","nodeType":"VariableDeclaration","scope":1003,"src":"1393:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":964,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":967,"mutability":"mutable","name":"result","nameLocation":"1420:6:4","nodeType":"VariableDeclaration","scope":1003,"src":"1407:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":966,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":979,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":972,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1484:8:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$13_$","typeString":"type(contract IERC1271)"}},"id":973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1493:16:4","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":12,"src":"1484:25:4","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1510:8:4","memberName":"selector","nodeType":"MemberAccess","src":"1484:34:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":975,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"1520:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":976,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"1526:9:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1461:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1465:18:4","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1461:22:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:75:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":968,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1430:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1437:10:4","memberName":"staticcall","nodeType":"MemberAccess","src":"1430:17:4","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:116:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1392:154:4"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":980,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1564:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":981,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1587:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1594:6:4","memberName":"length","nodeType":"MemberAccess","src":"1587:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1604:2:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1587:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":988,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1633:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1642:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:4","typeDescriptions":{}}}],"id":991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1641:9:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1622:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1626:6:4","memberName":"decode","nodeType":"MemberAccess","src":"1622:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1622:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":995,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1663:8:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$13_$","typeString":"type(contract IERC1271)"}},"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1672:16:4","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":12,"src":"1663:25:4","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1689:8:4","memberName":"selector","nodeType":"MemberAccess","src":"1663:34:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1655:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1655:7:4","typeDescriptions":{}}},"id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:43:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:76:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:134:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1001,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1563:136:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":939,"id":1002,"nodeType":"Return","src":"1556:143:4"}]},"documentation":{"id":929,"nodeType":"StructuredDocumentation","src":"562:472:4","text":" @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1048:19:4","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"signer","nameLocation":"1085:6:4","nodeType":"VariableDeclaration","scope":1004,"src":"1077:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":930,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":933,"mutability":"mutable","name":"hash","nameLocation":"1109:4:4","nodeType":"VariableDeclaration","scope":1004,"src":"1101:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":935,"mutability":"mutable","name":"signature","nameLocation":"1136:9:4","nodeType":"VariableDeclaration","scope":1004,"src":"1123:22:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":934,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1067:84:4"},"returnParameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1004,"src":"1175:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":937,"name":"bool","nodeType":"ElementaryTypeName","src":"1175:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1174:6:4"},"scope":1005,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":928,"nodeType":"StructuredDocumentation","src":"236:294:4","text":" @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n Argent and Gnosis Safe.\n _Available since v4.1._"},"fullyImplemented":true,"linearizedBaseContracts":[1005],"name":"SignatureChecker","nameLocation":"539:16:4","scope":1006,"usedErrors":[]}],"license":"MIT"},"id":4}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6102a761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;834:36:350;807:18;;778:47:7;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;834:36:350;807:18;;224:47:7;681:195:350;461:91:7;505:47;;547:4;505:47;;;834:36:350;807:18;;505:47:7;681:195:350;277:87:7;317:47;;359:4;317:47;;;834:36:350;807:18;;317:47:7;681:195:350;831:88:7;872:47;;914:4;872:47;;;834:36:350;807:18;;872:47:7;681:195:350;654:80:7;687:47;;729:4;687:47;;;834:36:350;807:18;;687:47:7;681:195:350;925:84:7;962:47;;1004:4;962:47;;;834:36:350;807:18;;962:47:7;681:195:350;558:90:7;601:47;;643:4;601:47;;;834:36:350;807:18;;601:47:7;681:195:350;370:85:7;408:47;;450:4;408:47;;;834:36:350;807:18;;408:47:7;681:195:350;14:662;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;458:6;455:1;452:13;449:91;;;528:1;523:2;514:6;503:9;499:22;495:31;488:42;449:91;-1:-1:-1;592:2:350;580:15;597:66;576:88;561:104;;;;667:2;557:113;;14:662;-1:-1:-1;;;14:662:350:o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":7}
{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6102a761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:5;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;834:36:382;807:18;;778:47:5;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;834:36:382;807:18;;224:47:5;681:195:382;461:91:5;505:47;;547:4;505:47;;;834:36:382;807:18;;505:47:5;681:195:382;277:87:5;317:47;;359:4;317:47;;;834:36:382;807:18;;317:47:5;681:195:382;831:88:5;872:47;;914:4;872:47;;;834:36:382;807:18;;872:47:5;681:195:382;654:80:5;687:47;;729:4;687:47;;;834:36:382;807:18;;687:47:5;681:195:382;925:84:5;962:47;;1004:4;962:47;;;834:36:382;807:18;;962:47:5;681:195:382;558:90:5;601:47;;643:4;601:47;;;834:36:382;807:18;;601:47:5;681:195:382;370:85:5;408:47;;450:4;408:47;;;834:36:382;807:18;;408:47:5;681:195:382;14:662;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;458:6;455:1;452:13;449:91;;;528:1;523:2;514:6;503:9;499:22;495:31;488:42;449:91;-1:-1:-1;592:2:382;580:15;597:66;576:88;561:104;;;;667:2;557:113;;14:662;-1:-1:-1;;;14:662:382:o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdError.sol","id":6436,"exportedSymbols":{"stdError":[6435]},"nodeType":"SourceUnit","src":"129:884:5","nodes":[{"id":6371,"nodeType":"PragmaDirective","src":"129:31:5","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6435,"nodeType":"ContractDefinition","src":"162:850:5","nodes":[{"id":6378,"nodeType":"VariableDeclaration","src":"185:86:5","nodes":[],"constant":true,"functionSelector":"10332977","mutability":"constant","name":"assertionError","nameLocation":"207:14:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6372,"name":"bytes","nodeType":"ElementaryTypeName","src":"185:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783031","id":6376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:4:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":6373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"224:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"224:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"224:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6385,"nodeType":"VariableDeclaration","src":"277:87:5","nodes":[],"constant":true,"functionSelector":"8995290f","mutability":"constant","name":"arithmeticError","nameLocation":"299:15:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6379,"name":"bytes","nodeType":"ElementaryTypeName","src":"277:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"341:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783131","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359:4:5","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"}],"expression":{"id":6380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"317:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"317:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6392,"nodeType":"VariableDeclaration","src":"370:85:5","nodes":[],"constant":true,"functionSelector":"fa784a44","mutability":"constant","name":"divisionError","nameLocation":"392:13:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6386,"name":"bytes","nodeType":"ElementaryTypeName","src":"370:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"432:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783132","id":6390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:4:5","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":6387,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"408:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"408:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"408:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6399,"nodeType":"VariableDeclaration","src":"461:91:5","nodes":[],"constant":true,"functionSelector":"1de45560","mutability":"constant","name":"enumConversionError","nameLocation":"483:19:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6393,"name":"bytes","nodeType":"ElementaryTypeName","src":"461:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783231","id":6397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"547:4:5","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":6394,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"505:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"505:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6406,"nodeType":"VariableDeclaration","src":"558:90:5","nodes":[],"constant":true,"functionSelector":"d160e4de","mutability":"constant","name":"encodeStorageError","nameLocation":"580:18:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6400,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783232","id":6404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:4:5","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"}],"expression":{"id":6401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"601:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"601:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"601:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6413,"nodeType":"VariableDeclaration","src":"654:80:5","nodes":[],"constant":true,"functionSelector":"b22dc54d","mutability":"constant","name":"popError","nameLocation":"676:8:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6407,"name":"bytes","nodeType":"ElementaryTypeName","src":"654:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783331","id":6411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:4:5","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"}],"expression":{"id":6408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"687:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"687:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"687:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6420,"nodeType":"VariableDeclaration","src":"740:85:5","nodes":[],"constant":true,"functionSelector":"05ee8612","mutability":"constant","name":"indexOOBError","nameLocation":"762:13:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6414,"name":"bytes","nodeType":"ElementaryTypeName","src":"740:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783332","id":6418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:4:5","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"}],"expression":{"id":6415,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"778:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"778:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"778:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6427,"nodeType":"VariableDeclaration","src":"831:88:5","nodes":[],"constant":true,"functionSelector":"986c5f68","mutability":"constant","name":"memOverflowError","nameLocation":"853:16:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6421,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783431","id":6425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:4:5","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":6422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"872:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"872:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"872:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6434,"nodeType":"VariableDeclaration","src":"925:84:5","nodes":[],"constant":true,"functionSelector":"b67689da","mutability":"constant","name":"zeroVarError","nameLocation":"947:12:5","scope":6435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6428,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783531","id":6432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:4:5","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"}],"expression":{"id":6429,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"stdError","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6435],"name":"stdError","nameLocation":"170:8:5","scope":6436,"usedErrors":[]}],"license":"MIT"},"id":5}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6102a1610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b60006020808352835180602085015260005b8181101561025557858101830151858201604001528201610239565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509291505056fea164736f6c6343000819000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b60006020808352835180602085015260005b8181101561025557858101830151858201604001528201610239565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509291505056fea164736f6c6343000819000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;785:36:123;758:18;;778:47:7;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;785:36:123;758:18;;224:47:7;632:195:123;461:91:7;505:47;;547:4;505:47;;;785:36:123;758:18;;505:47:7;632:195:123;277:87:7;317:47;;359:4;317:47;;;785:36:123;758:18;;317:47:7;632:195:123;831:88:7;872:47;;914:4;872:47;;;785:36:123;758:18;;872:47:7;632:195:123;654:80:7;687:47;;729:4;687:47;;;785:36:123;758:18;;687:47:7;632:195:123;925:84:7;962:47;;1004:4;962:47;;;785:36:123;758:18;;962:47:7;632:195:123;558:90:7;601:47;;643:4;601:47;;;785:36:123;758:18;;601:47:7;632:195:123;370:85:7;408:47;;450:4;408:47;;;785:36:123;758:18;;408:47:7;632:195:123;14:613;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;618:2;548:66;543:2;535:6;531:15;527:88;516:9;512:104;508:113;500:121;;;;14:613;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":7}
{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x610283610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100aa575f3560e01c8063986c5f681161007d578063b67689da11610063578063b67689da146100f4578063d160e4de146100fc578063fa784a4414610104575f80fd5b8063986c5f68146100e4578063b22dc54d146100ec575f80fd5b806305ee8612146100ae57806310332977146100cc5780631de45560146100d45780638995290f146100dc575b5f80fd5b6100b661010c565b6040516100c39190610223565b60405180910390f35b6100b6610193565b6100b66101a5565b6100b66101b7565b6100b66101c9565b6100b66101db565b6100b66101ed565b6100b66101ff565b6100b6610211565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011a565b6040516021602482015260440161011a565b6040516011602482015260440161011a565b6040516041602482015260440161011a565b6040516031602482015260440161011a565b6040516051602482015260440161011a565b6040516022602482015260440161011a565b6040516012602482015260440161011a565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c6343000819000a","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100aa575f3560e01c8063986c5f681161007d578063b67689da11610063578063b67689da146100f4578063d160e4de146100fc578063fa784a4414610104575f80fd5b8063986c5f68146100e4578063b22dc54d146100ec575f80fd5b806305ee8612146100ae57806310332977146100cc5780631de45560146100d45780638995290f146100dc575b5f80fd5b6100b661010c565b6040516100c39190610223565b60405180910390f35b6100b6610193565b6100b66101a5565b6100b66101b7565b6100b66101c9565b6100b66101db565b6100b66101ed565b6100b66101ff565b6100b6610211565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011a565b6040516021602482015260440161011a565b6040516011602482015260440161011a565b6040516041602482015260440161011a565b6040516031602482015260440161011a565b6040516051602482015260440161011a565b6040516022602482015260440161011a565b6040516012602482015260440161011a565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea164736f6c6343000819000a","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;655:36:36;628:18;;778:47:4;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;655:36:36;628:18;;224:47:4;502:195:36;461:91:4;505:47;;547:4;505:47;;;655:36:36;628:18;;505:47:4;502:195:36;277:87:4;317:47;;359:4;317:47;;;655:36:36;628:18;;317:47:4;502:195:36;831:88:4;872:47;;914:4;872:47;;;655:36:36;628:18;;872:47:4;502:195:36;654:80:4;687:47;;729:4;687:47;;;655:36:36;628:18;;687:47:4;502:195:36;925:84:4;962:47;;1004:4;962:47;;;655:36:36;628:18;;962:47:4;502:195:36;558:90:4;601:47;;643:4;601:47;;;655:36:36;628:18;;601:47:4;502:195:36;370:85:4;408:47;;450:4;408:47;;;655:36:36;628:18;;408:47:4;502:195:36;14:483;169:2;158:9;151:21;132:4;201:6;195:13;244:6;239:2;228:9;224:18;217:34;303:6;298:2;290:6;286:15;281:2;270:9;266:18;260:50;359:1;354:2;345:6;334:9;330:22;326:31;319:42;488:2;418:66;413:2;405:6;401:15;397:88;386:9;382:104;378:113;370:121;;;14:483;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdError.sol","id":6397,"exportedSymbols":{"stdError":[6396]},"nodeType":"SourceUnit","src":"129:884:4","nodes":[{"id":6332,"nodeType":"PragmaDirective","src":"129:31:4","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6396,"nodeType":"ContractDefinition","src":"162:850:4","nodes":[{"id":6339,"nodeType":"VariableDeclaration","src":"185:86:4","nodes":[],"constant":true,"functionSelector":"10332977","mutability":"constant","name":"assertionError","nameLocation":"207:14:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6333,"name":"bytes","nodeType":"ElementaryTypeName","src":"185:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783031","id":6337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":6334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"224:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"228:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"224:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"224:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6346,"nodeType":"VariableDeclaration","src":"277:87:4","nodes":[],"constant":true,"functionSelector":"8995290f","mutability":"constant","name":"arithmeticError","nameLocation":"299:15:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6340,"name":"bytes","nodeType":"ElementaryTypeName","src":"277:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"341:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783131","id":6344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359:4:4","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"}],"expression":{"id":6341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"317:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"321:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"317:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6353,"nodeType":"VariableDeclaration","src":"370:85:4","nodes":[],"constant":true,"functionSelector":"fa784a44","mutability":"constant","name":"divisionError","nameLocation":"392:13:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6347,"name":"bytes","nodeType":"ElementaryTypeName","src":"370:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"432:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783132","id":6351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:4:4","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":6348,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"408:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"412:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"408:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"408:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6360,"nodeType":"VariableDeclaration","src":"461:91:4","nodes":[],"constant":true,"functionSelector":"1de45560","mutability":"constant","name":"enumConversionError","nameLocation":"483:19:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6354,"name":"bytes","nodeType":"ElementaryTypeName","src":"461:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783231","id":6358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"547:4:4","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":6355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"505:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"509:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"505:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6367,"nodeType":"VariableDeclaration","src":"558:90:4","nodes":[],"constant":true,"functionSelector":"d160e4de","mutability":"constant","name":"encodeStorageError","nameLocation":"580:18:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6361,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783232","id":6365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:4:4","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"}],"expression":{"id":6362,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"601:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"605:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"601:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"601:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6374,"nodeType":"VariableDeclaration","src":"654:80:4","nodes":[],"constant":true,"functionSelector":"b22dc54d","mutability":"constant","name":"popError","nameLocation":"676:8:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6368,"name":"bytes","nodeType":"ElementaryTypeName","src":"654:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783331","id":6372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:4:4","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"}],"expression":{"id":6369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"687:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"691:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"687:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"687:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6381,"nodeType":"VariableDeclaration","src":"740:85:4","nodes":[],"constant":true,"functionSelector":"05ee8612","mutability":"constant","name":"indexOOBError","nameLocation":"762:13:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6375,"name":"bytes","nodeType":"ElementaryTypeName","src":"740:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783332","id":6379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:4:4","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"}],"expression":{"id":6376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"778:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"782:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"778:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"778:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6388,"nodeType":"VariableDeclaration","src":"831:88:4","nodes":[],"constant":true,"functionSelector":"986c5f68","mutability":"constant","name":"memOverflowError","nameLocation":"853:16:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6382,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783431","id":6386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:4:4","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":6383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"872:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"876:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"872:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6395,"nodeType":"VariableDeclaration","src":"925:84:4","nodes":[],"constant":true,"functionSelector":"b67689da","mutability":"constant","name":"zeroVarError","nameLocation":"947:12:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6389,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783531","id":6393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:4:4","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"}],"expression":{"id":6390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"stdError","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6396],"name":"stdError","nameLocation":"170:8:4","scope":6397,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":4}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":10}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:8;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:8:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdMath.sol","id":7429,"exportedSymbols":{"stdMath":[7428]},"nodeType":"SourceUnit","src":"32:1328:8","nodes":[{"id":7288,"nodeType":"PragmaDirective","src":"32:31:8","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7428,"nodeType":"ContractDefinition","src":"65:1294:8","nodes":[{"id":7292,"nodeType":"VariableDeclaration","src":"87:115:8","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN","nameLocation":"111:10:8","scope":7428,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7289,"name":"int256","nodeType":"ElementaryTypeName","src":"87:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":7291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"124:78:8","subExpression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125:77:8","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"id":7318,"nodeType":"FunctionDefinition","src":"209:306:8","nodes":[],"body":{"id":7317,"nodeType":"Block","src":"264:251:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7299,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"342:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7300,"name":"INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7292,"src":"347:10:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"342:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7305,"nodeType":"IfStatement","src":"338:130:8","trueBody":{"id":7304,"nodeType":"Block","src":"359:109:8","statements":[{"expression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380:77:8","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"functionReturnParameters":7298,"id":7303,"nodeType":"Return","src":"373:84:8"}]}},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7308,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"493:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"493:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"505:2:8","subExpression":{"id":7312,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"506:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"493:14:8","trueExpression":{"id":7311,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"501:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7306,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:8","typeDescriptions":{}}},"id":7315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7298,"id":7316,"nodeType":"Return","src":"478:30:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"218:3:8","parameters":{"id":7295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7294,"mutability":"mutable","name":"a","nameLocation":"229:1:8","nodeType":"VariableDeclaration","scope":7318,"src":"222:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7293,"name":"int256","nodeType":"ElementaryTypeName","src":"222:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"221:10:8"},"returnParameters":{"id":7298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7318,"src":"255:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7296,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"254:9:8"},"scope":7428,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7339,"nodeType":"FunctionDefinition","src":"521:114:8","nodes":[],"body":{"id":7338,"nodeType":"Block","src":"590:45:8","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7327,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"607:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7328,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"611:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"607:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7333,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"623:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7334,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"627:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"607:21:8","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7330,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"615:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7331,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"619:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"615:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7326,"id":7337,"nodeType":"Return","src":"600:28:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"530:5:8","parameters":{"id":7323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7320,"mutability":"mutable","name":"a","nameLocation":"544:1:8","nodeType":"VariableDeclaration","scope":7339,"src":"536:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7319,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7322,"mutability":"mutable","name":"b","nameLocation":"555:1:8","nodeType":"VariableDeclaration","scope":7339,"src":"547:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7321,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"535:22:8"},"returnParameters":{"id":7326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7339,"src":"581:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7324,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:9:8"},"scope":7428,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7375,"nodeType":"FunctionDefinition","src":"641:352:8","nodes":[],"body":{"id":7374,"nodeType":"Block","src":"708:285:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"847:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"851:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"847:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":7351,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"846:7:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"856:2:8","subExpression":{"hexValue":"31","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"846:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7365,"nodeType":"IfStatement","src":"842:71:8","trueBody":{"id":7364,"nodeType":"Block","src":"860:53:8","statements":[{"expression":{"arguments":[{"arguments":[{"id":7357,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"891:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7356,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"887:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"887:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7360,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"899:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7359,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"895:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"895:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7355,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7339,7375],"referencedDeclaration":7339,"src":"881:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7347,"id":7363,"nodeType":"Return","src":"874:28:8"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7367,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"975:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7366,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"971:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"971:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":7370,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"984:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7369,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"980:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"980:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"971:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7347,"id":7373,"nodeType":"Return","src":"964:22:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"650:5:8","parameters":{"id":7344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7341,"mutability":"mutable","name":"a","nameLocation":"663:1:8","nodeType":"VariableDeclaration","scope":7375,"src":"656:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7340,"name":"int256","nodeType":"ElementaryTypeName","src":"656:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7343,"mutability":"mutable","name":"b","nameLocation":"673:1:8","nodeType":"VariableDeclaration","scope":7375,"src":"666:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7342,"name":"int256","nodeType":"ElementaryTypeName","src":"666:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"655:20:8"},"returnParameters":{"id":7347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7375,"src":"699:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:9:8"},"scope":7428,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7398,"nodeType":"FunctionDefinition","src":"999:160:8","nodes":[],"body":{"id":7397,"nodeType":"Block","src":"1075:84:8","nodes":[],"statements":[{"assignments":[7385],"declarations":[{"constant":false,"id":7385,"mutability":"mutable","name":"absDelta","nameLocation":"1093:8:8","nodeType":"VariableDeclaration","scope":7397,"src":"1085:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7384,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7390,"initialValue":{"arguments":[{"id":7387,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7377,"src":"1110:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7388,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7379,"src":"1113:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7386,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7339,7375],"referencedDeclaration":7339,"src":"1104:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1104:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1085:30:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7391,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7385,"src":"1133:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1144:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1133:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7394,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7379,"src":"1151:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:19:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7383,"id":7396,"nodeType":"Return","src":"1126:26:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1008:12:8","parameters":{"id":7380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7377,"mutability":"mutable","name":"a","nameLocation":"1029:1:8","nodeType":"VariableDeclaration","scope":7398,"src":"1021:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7376,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7379,"mutability":"mutable","name":"b","nameLocation":"1040:1:8","nodeType":"VariableDeclaration","scope":7398,"src":"1032:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7378,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:22:8"},"returnParameters":{"id":7383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7398,"src":"1066:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7381,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1065:9:8"},"scope":7428,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7427,"nodeType":"FunctionDefinition","src":"1165:192:8","nodes":[],"body":{"id":7426,"nodeType":"Block","src":"1239:118:8","nodes":[],"statements":[{"assignments":[7408],"declarations":[{"constant":false,"id":7408,"mutability":"mutable","name":"absDelta","nameLocation":"1257:8:8","nodeType":"VariableDeclaration","scope":7426,"src":"1249:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7413,"initialValue":{"arguments":[{"id":7410,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7400,"src":"1274:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":7411,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"1277:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7409,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7339,7375],"referencedDeclaration":7375,"src":"1268:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":7412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1268:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1249:30:8"},{"assignments":[7415],"declarations":[{"constant":false,"id":7415,"mutability":"mutable","name":"absB","nameLocation":"1297:4:8","nodeType":"VariableDeclaration","scope":7426,"src":"1289:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7419,"initialValue":{"arguments":[{"id":7417,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"1308:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7416,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"1304:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1304:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:21:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7420,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7408,"src":"1328:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1339:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1328:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7423,"name":"absB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"1346:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1328:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7406,"id":7425,"nodeType":"Return","src":"1321:29:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1174:12:8","parameters":{"id":7403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7400,"mutability":"mutable","name":"a","nameLocation":"1194:1:8","nodeType":"VariableDeclaration","scope":7427,"src":"1187:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7399,"name":"int256","nodeType":"ElementaryTypeName","src":"1187:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7402,"mutability":"mutable","name":"b","nameLocation":"1204:1:8","nodeType":"VariableDeclaration","scope":7427,"src":"1197:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7401,"name":"int256","nodeType":"ElementaryTypeName","src":"1197:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1186:20:8"},"returnParameters":{"id":7406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7427,"src":"1230:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7404,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:8"},"scope":7428,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdMath","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7428],"name":"stdMath","nameLocation":"73:7:8","scope":7429,"usedErrors":[]}],"license":"MIT"},"id":8}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"65:1294:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"65:1294:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":10}
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"65:1294:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"65:1294:7:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdMath.sol","id":7390,"exportedSymbols":{"stdMath":[7389]},"nodeType":"SourceUnit","src":"32:1328:7","nodes":[{"id":7249,"nodeType":"PragmaDirective","src":"32:31:7","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7389,"nodeType":"ContractDefinition","src":"65:1294:7","nodes":[{"id":7253,"nodeType":"VariableDeclaration","src":"87:115:7","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN","nameLocation":"111:10:7","scope":7389,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7250,"name":"int256","nodeType":"ElementaryTypeName","src":"87:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":7252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"124:78:7","subExpression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125:77:7","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"id":7279,"nodeType":"FunctionDefinition","src":"209:306:7","nodes":[],"body":{"id":7278,"nodeType":"Block","src":"264:251:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7260,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"342:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7261,"name":"INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"347:10:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"342:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7266,"nodeType":"IfStatement","src":"338:130:7","trueBody":{"id":7265,"nodeType":"Block","src":"359:109:7","statements":[{"expression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380:77:7","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"functionReturnParameters":7259,"id":7264,"nodeType":"Return","src":"373:84:7"}]}},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7269,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"493:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"493:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"505:2:7","subExpression":{"id":7273,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"506:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"493:14:7","trueExpression":{"id":7272,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"501:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7267,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:7","typeDescriptions":{}}},"id":7276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"485:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7259,"id":7277,"nodeType":"Return","src":"478:30:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"218:3:7","parameters":{"id":7256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7255,"mutability":"mutable","name":"a","nameLocation":"229:1:7","nodeType":"VariableDeclaration","scope":7279,"src":"222:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7254,"name":"int256","nodeType":"ElementaryTypeName","src":"222:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"221:10:7"},"returnParameters":{"id":7259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7279,"src":"255:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7257,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"254:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7300,"nodeType":"FunctionDefinition","src":"521:114:7","nodes":[],"body":{"id":7299,"nodeType":"Block","src":"590:45:7","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7288,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"607:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7289,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"611:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"607:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7294,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"623:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"627:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"607:21:7","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"615:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7292,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"619:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"615:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7287,"id":7298,"nodeType":"Return","src":"600:28:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"530:5:7","parameters":{"id":7284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7281,"mutability":"mutable","name":"a","nameLocation":"544:1:7","nodeType":"VariableDeclaration","scope":7300,"src":"536:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7280,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7283,"mutability":"mutable","name":"b","nameLocation":"555:1:7","nodeType":"VariableDeclaration","scope":7300,"src":"547:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7282,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"535:22:7"},"returnParameters":{"id":7287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7300,"src":"581:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7285,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7336,"nodeType":"FunctionDefinition","src":"641:352:7","nodes":[],"body":{"id":7335,"nodeType":"Block","src":"708:285:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7309,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"847:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7310,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"851:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"847:5:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":7312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"846:7:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"856:2:7","subExpression":{"hexValue":"31","id":7313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"846:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7326,"nodeType":"IfStatement","src":"842:71:7","trueBody":{"id":7325,"nodeType":"Block","src":"860:53:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":7318,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"891:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7317,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"887:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7321,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"899:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7320,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"895:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"895:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7316,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7300,"src":"881:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7308,"id":7324,"nodeType":"Return","src":"874:28:7"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7328,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"975:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7327,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"971:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"971:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":7331,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"984:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7330,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"980:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"971:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7308,"id":7334,"nodeType":"Return","src":"964:22:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"650:5:7","parameters":{"id":7305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7302,"mutability":"mutable","name":"a","nameLocation":"663:1:7","nodeType":"VariableDeclaration","scope":7336,"src":"656:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7301,"name":"int256","nodeType":"ElementaryTypeName","src":"656:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7304,"mutability":"mutable","name":"b","nameLocation":"673:1:7","nodeType":"VariableDeclaration","scope":7336,"src":"666:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7303,"name":"int256","nodeType":"ElementaryTypeName","src":"666:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"655:20:7"},"returnParameters":{"id":7308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7336,"src":"699:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7306,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7359,"nodeType":"FunctionDefinition","src":"999:160:7","nodes":[],"body":{"id":7358,"nodeType":"Block","src":"1075:84:7","nodes":[],"statements":[{"assignments":[7346],"declarations":[{"constant":false,"id":7346,"mutability":"mutable","name":"absDelta","nameLocation":"1093:8:7","nodeType":"VariableDeclaration","scope":7358,"src":"1085:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7351,"initialValue":{"arguments":[{"id":7348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"1110:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1113:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7347,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7300,"src":"1104:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1085:30:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7352,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7346,"src":"1133:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1144:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1133:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7355,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1151:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7344,"id":7357,"nodeType":"Return","src":"1126:26:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1008:12:7","parameters":{"id":7341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7338,"mutability":"mutable","name":"a","nameLocation":"1029:1:7","nodeType":"VariableDeclaration","scope":7359,"src":"1021:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7340,"mutability":"mutable","name":"b","nameLocation":"1040:1:7","nodeType":"VariableDeclaration","scope":7359,"src":"1032:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:22:7"},"returnParameters":{"id":7344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7359,"src":"1066:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7342,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1065:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7388,"nodeType":"FunctionDefinition","src":"1165:192:7","nodes":[],"body":{"id":7387,"nodeType":"Block","src":"1239:118:7","nodes":[],"statements":[{"assignments":[7369],"declarations":[{"constant":false,"id":7369,"mutability":"mutable","name":"absDelta","nameLocation":"1257:8:7","nodeType":"VariableDeclaration","scope":7387,"src":"1249:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7374,"initialValue":{"arguments":[{"id":7371,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"1274:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":7372,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"1277:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7370,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7336,"src":"1268:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1249:30:7"},{"assignments":[7376],"declarations":[{"constant":false,"id":7376,"mutability":"mutable","name":"absB","nameLocation":"1297:4:7","nodeType":"VariableDeclaration","scope":7387,"src":"1289:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7380,"initialValue":{"arguments":[{"id":7378,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"1308:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7377,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"1304:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:21:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7381,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7369,"src":"1328:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1339:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1328:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7384,"name":"absB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1346:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1328:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7367,"id":7386,"nodeType":"Return","src":"1321:29:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1174:12:7","parameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7361,"mutability":"mutable","name":"a","nameLocation":"1194:1:7","nodeType":"VariableDeclaration","scope":7388,"src":"1187:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7360,"name":"int256","nodeType":"ElementaryTypeName","src":"1187:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7363,"mutability":"mutable","name":"b","nameLocation":"1204:1:7","nodeType":"VariableDeclaration","scope":7388,"src":"1197:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7362,"name":"int256","nodeType":"ElementaryTypeName","src":"1197:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1186:20:7"},"returnParameters":{"id":7367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7388,"src":"1230:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdMath","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7389],"name":"stdMath","nameLocation":"73:7:7","scope":7390,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":7}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"slots","type":"tuple[]","internalType":"struct StorageSetter.Slot[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:231:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:231:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1013:211;;;;;;:::i;:::-;;:::i;:::-;;1990:123;;;;;;:::i;:::-;;:::i;:::-;;;1021:42:350;1009:55;;;991:74;;979:2;964:18;1990:123:231;;;;;;;;835:108;;;;;;:::i;:::-;2703:21:196;;835:108:231;646:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2328:116::-;;;;;;:::i;:::-;;;2155:14:350;;2148:22;2130:41;;2118:2;2103:18;2328:116:231;1990:187:350;1286:125:231;;;;;;:::i;:::-;;;2328:25:350;;;2316:2;2301:18;1286:125:231;2182:177:350;2170:99:231;;;;;;:::i;1815:112::-;;;;;;:::i;1013:211::-;1090:5;1073:14;1112:106;1132:6;1128:1;:10;1112:106;;;1159:48;1178:5;;1184:1;1178:8;;;;;;;:::i;:::-;;;;;;:12;;;1192:5;;1198:1;1192:8;;;;;;;:::i;:::-;;;;;;:14;;;2703:21:196;;2610:130;1159:48:231;1140:3;;;;:::i;:::-;;;;1112:106;;;;1063:161;1013:211;;:::o;1990:123::-;2048:13;2081:25;2100:5;535:12:196;;420:143;2081:25:231;2073:33;1990:123;-1:-1:-1;;1990:123:231:o;14:641:350:-;126:6;134;187:2;175:9;166:7;162:23;158:32;155:52;;;203:1;200;193:12;155:52;243:9;230:23;272:18;313:2;305:6;302:14;299:34;;;329:1;326;319:12;299:34;367:6;356:9;352:22;342:32;;412:7;405:4;401:2;397:13;393:27;383:55;;434:1;431;424:12;383:55;474:2;461:16;500:2;492:6;489:14;486:34;;;516:1;513;506:12;486:34;569:7;564:2;554:6;551:1;547:14;543:2;539:23;535:32;532:45;529:65;;;590:1;587;580:12;529:65;621:2;613:11;;;;;643:6;;-1:-1:-1;14:641:350;;-1:-1:-1;;;;14:641:350:o;660:180::-;719:6;772:2;760:9;751:7;747:23;743:32;740:52;;;788:1;785;778:12;740:52;-1:-1:-1;811:23:350;;660:180;-1:-1:-1;660:180:350:o;1076:248::-;1144:6;1152;1205:2;1193:9;1184:7;1180:23;1176:32;1173:52;;;1221:1;1218;1211:12;1173:52;-1:-1:-1;;1244:23:350;;;1314:2;1299:18;;;1286:32;;-1:-1:-1;1076:248:350:o;1329:656::-;1441:4;1470:2;1499;1488:9;1481:21;1531:6;1525:13;1574:6;1569:2;1558:9;1554:18;1547:34;1599:1;1609:140;1623:6;1620:1;1617:13;1609:140;;;1718:14;;;1714:23;;1708:30;1684:17;;;1703:2;1680:26;1673:66;1638:10;;1609:140;;;1767:6;1764:1;1761:13;1758:91;;;1837:1;1832:2;1823:6;1812:9;1808:22;1804:31;1797:42;1758:91;-1:-1:-1;1901:2:350;1889:15;1906:66;1885:88;1870:104;;;;1976:2;1866:113;;1329:656;-1:-1:-1;;;1329:656:350:o;2364:341::-;2429:6;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2542:9;2529:23;2519:33;;2602:2;2591:9;2587:18;2574:32;2649:5;2642:13;2635:21;2628:5;2625:32;2615:60;;2671:1;2668;2661:12;2615:60;2694:5;2684:15;;;2364:341;;;;;:::o;2892:377::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3073:9;3060:23;3050:33;;3133:2;3122:9;3118:18;3105:32;3177:42;3170:5;3166:54;3159:5;3156:65;3146:93;;3235:1;3232;3225:12;3527:184;3579:77;3576:1;3569:88;3676:4;3673:1;3666:15;3700:4;3697:1;3690:15;3716:349;3755:3;3786:66;3779:5;3776:77;3773:257;;3886:77;3883:1;3876:88;3987:4;3984:1;3977:15;4015:4;4012:1;4005:15;3773:257;-1:-1:-1;4057:1:350;4046:13;;3716:349::o","linkReferences":{}},"methodIdentifiers":{"getAddress(bytes32)":"21f8a721","getBool(bytes32)":"7ae1cfca","getBytes32(bytes32)":"a6ed563e","getUint(bytes32)":"bd02d0f5","setAddress(bytes32,address)":"ca446dd9","setBool(bytes32,bool)":"abfdcced","setBytes32((bytes32,bytes32)[])":"0528afe2","setBytes32(bytes32,bytes32)":"4e91db08","setUint(bytes32,uint256)":"e2a4853a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"setBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct StorageSetter.Slot[]\",\"name\":\"slots\",\"type\":\"tuple[]\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setUint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"StorageSetter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAddress(bytes32)\":{\"notice\":\"Retrieves an address value from `_slot`.\"},\"getBool(bytes32)\":{\"notice\":\"Retrieves a bool value from `_slot`.\"},\"getBytes32(bytes32)\":{\"notice\":\"Retrieves a bytes32 value from `_slot`.\"},\"getUint(bytes32)\":{\"notice\":\"Retrieves a uint256 value from `_slot`.\"},\"setAddress(bytes32,address)\":{\"notice\":\"Stores an address `_value` at `_slot`.\"},\"setBool(bytes32,bool)\":{\"notice\":\"Stores a bool `_value` at `_slot`.\"},\"setBytes32((bytes32,bytes32)[])\":{\"notice\":\"Stores a bytes32 value at each key in `_slots`.\"},\"setBytes32(bytes32,bytes32)\":{\"notice\":\"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface.\"},\"setUint(bytes32,uint256)\":{\"notice\":\"Stores a uint256 `_value` at `_slot`.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/StorageSetter.sol\":\"StorageSetter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/StorageSetter.sol\":{\"keccak256\":\"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f\",\"dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"addr_","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBool","outputs":[{"internalType":"bool","name":"value_","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBytes32","outputs":[{"internalType":"bytes32","name":"value_","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getUint","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setBool"},{"inputs":[{"internalType":"struct StorageSetter.Slot[]","name":"slots","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setUint"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/StorageSetter.sol":"StorageSetter"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/StorageSetter.sol":{"keccak256":"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b","urls":["bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f","dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"notice":"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades."},"devdoc":{"version":1,"kind":"dev","title":"StorageSetter"},"id":231}
{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"slots","type":"tuple[]","internalType":"struct StorageSetter.Slot[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:247:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:247:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1013:211;;;;;;:::i;:::-;;:::i;:::-;;1990:123;;;;;;:::i;:::-;;:::i;:::-;;;1021:42:382;1009:55;;;991:74;;979:2;964:18;1990:123:247;;;;;;;;835:108;;;;;;:::i;:::-;2703:21:210;;835:108:247;646:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2328:116::-;;;;;;:::i;:::-;;;2155:14:382;;2148:22;2130:41;;2118:2;2103:18;2328:116:247;1990:187:382;1286:125:247;;;;;;:::i;:::-;;;2328:25:382;;;2316:2;2301:18;1286:125:247;2182:177:382;2170:99:247;;;;;;:::i;1815:112::-;;;;;;:::i;1013:211::-;1090:5;1073:14;1112:106;1132:6;1128:1;:10;1112:106;;;1159:48;1178:5;;1184:1;1178:8;;;;;;;:::i;:::-;;;;;;:12;;;1192:5;;1198:1;1192:8;;;;;;;:::i;:::-;;;;;;:14;;;2703:21:210;;2610:130;1159:48:247;1140:3;;;;:::i;:::-;;;;1112:106;;;;1063:161;1013:211;;:::o;1990:123::-;2048:13;2081:25;2100:5;535:12:210;;420:143;2081:25:247;2073:33;1990:123;-1:-1:-1;;1990:123:247:o;14:641:382:-;126:6;134;187:2;175:9;166:7;162:23;158:32;155:52;;;203:1;200;193:12;155:52;243:9;230:23;272:18;313:2;305:6;302:14;299:34;;;329:1;326;319:12;299:34;367:6;356:9;352:22;342:32;;412:7;405:4;401:2;397:13;393:27;383:55;;434:1;431;424:12;383:55;474:2;461:16;500:2;492:6;489:14;486:34;;;516:1;513;506:12;486:34;569:7;564:2;554:6;551:1;547:14;543:2;539:23;535:32;532:45;529:65;;;590:1;587;580:12;529:65;621:2;613:11;;;;;643:6;;-1:-1:-1;14:641:382;;-1:-1:-1;;;;14:641:382:o;660:180::-;719:6;772:2;760:9;751:7;747:23;743:32;740:52;;;788:1;785;778:12;740:52;-1:-1:-1;811:23:382;;660:180;-1:-1:-1;660:180:382:o;1076:248::-;1144:6;1152;1205:2;1193:9;1184:7;1180:23;1176:32;1173:52;;;1221:1;1218;1211:12;1173:52;-1:-1:-1;;1244:23:382;;;1314:2;1299:18;;;1286:32;;-1:-1:-1;1076:248:382:o;1329:656::-;1441:4;1470:2;1499;1488:9;1481:21;1531:6;1525:13;1574:6;1569:2;1558:9;1554:18;1547:34;1599:1;1609:140;1623:6;1620:1;1617:13;1609:140;;;1718:14;;;1714:23;;1708:30;1684:17;;;1703:2;1680:26;1673:66;1638:10;;1609:140;;;1767:6;1764:1;1761:13;1758:91;;;1837:1;1832:2;1823:6;1812:9;1808:22;1804:31;1797:42;1758:91;-1:-1:-1;1901:2:382;1889:15;1906:66;1885:88;1870:104;;;;1976:2;1866:113;;1329:656;-1:-1:-1;;;1329:656:382:o;2364:341::-;2429:6;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2542:9;2529:23;2519:33;;2602:2;2591:9;2587:18;2574:32;2649:5;2642:13;2635:21;2628:5;2625:32;2615:60;;2671:1;2668;2661:12;2615:60;2694:5;2684:15;;;2364:341;;;;;:::o;2892:377::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3073:9;3060:23;3050:33;;3133:2;3122:9;3118:18;3105:32;3177:42;3170:5;3166:54;3159:5;3156:65;3146:93;;3235:1;3232;3225:12;3527:184;3579:77;3576:1;3569:88;3676:4;3673:1;3666:15;3700:4;3697:1;3690:15;3716:349;3755:3;3786:66;3779:5;3776:77;3773:257;;3886:77;3883:1;3876:88;3987:4;3984:1;3977:15;4015:4;4012:1;4005:15;3773:257;-1:-1:-1;4057:1:382;4046:13;;3716:349::o","linkReferences":{}},"methodIdentifiers":{"getAddress(bytes32)":"21f8a721","getBool(bytes32)":"7ae1cfca","getBytes32(bytes32)":"a6ed563e","getUint(bytes32)":"bd02d0f5","setAddress(bytes32,address)":"ca446dd9","setBool(bytes32,bool)":"abfdcced","setBytes32((bytes32,bytes32)[])":"0528afe2","setBytes32(bytes32,bytes32)":"4e91db08","setUint(bytes32,uint256)":"e2a4853a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"setBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct StorageSetter.Slot[]\",\"name\":\"slots\",\"type\":\"tuple[]\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setUint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"StorageSetter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAddress(bytes32)\":{\"notice\":\"Retrieves an address value from `_slot`.\"},\"getBool(bytes32)\":{\"notice\":\"Retrieves a bool value from `_slot`.\"},\"getBytes32(bytes32)\":{\"notice\":\"Retrieves a bytes32 value from `_slot`.\"},\"getUint(bytes32)\":{\"notice\":\"Retrieves a uint256 value from `_slot`.\"},\"setAddress(bytes32,address)\":{\"notice\":\"Stores an address `_value` at `_slot`.\"},\"setBool(bytes32,bool)\":{\"notice\":\"Stores a bool `_value` at `_slot`.\"},\"setBytes32((bytes32,bytes32)[])\":{\"notice\":\"Stores a bytes32 value at each key in `_slots`.\"},\"setBytes32(bytes32,bytes32)\":{\"notice\":\"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface.\"},\"setUint(bytes32,uint256)\":{\"notice\":\"Stores a uint256 `_value` at `_slot`.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/StorageSetter.sol\":\"StorageSetter\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/StorageSetter.sol\":{\"keccak256\":\"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f\",\"dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"addr_","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBool","outputs":[{"internalType":"bool","name":"value_","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBytes32","outputs":[{"internalType":"bytes32","name":"value_","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getUint","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setBool"},{"inputs":[{"internalType":"struct StorageSetter.Slot[]","name":"slots","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setUint"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/StorageSetter.sol":"StorageSetter"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/StorageSetter.sol":{"keccak256":"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b","urls":["bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f","dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"notice":"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades."},"devdoc":{"version":1,"kind":"dev","title":"StorageSetter"},"ast":{"absolutePath":"src/universal/StorageSetter.sol","id":116116,"exportedSymbols":{"ISemver":[113621],"Storage":[108309],"StorageSetter":[116115]},"nodeType":"SourceUnit","src":"32:2415:247","nodes":[{"id":115932,"nodeType":"PragmaDirective","src":"32:23:247","nodes":[],"literals":["solidity","0.8",".15"]},{"id":115934,"nodeType":"ImportDirective","src":"57:52:247","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":116116,"sourceUnit":113622,"symbolAliases":[{"foreign":{"id":115933,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113621,"src":"66:7:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":115936,"nodeType":"ImportDirective","src":"110:52:247","nodes":[],"absolutePath":"src/libraries/Storage.sol","file":"src/libraries/Storage.sol","nameLocation":"-1:-1:-1","scope":116116,"sourceUnit":108310,"symbolAliases":[{"foreign":{"id":115935,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"119:7:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":116115,"nodeType":"ContractDefinition","src":"416:2030:247","nodes":[{"id":115944,"nodeType":"StructDefinition","src":"514:63:247","nodes":[],"canonicalName":"StorageSetter.Slot","members":[{"constant":false,"id":115941,"mutability":"mutable","name":"key","nameLocation":"544:3:247","nodeType":"VariableDeclaration","scope":115944,"src":"536:11:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":115940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"536:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":115943,"mutability":"mutable","name":"value","nameLocation":"565:5:247","nodeType":"VariableDeclaration","scope":115944,"src":"557:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":115942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"557:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Slot","nameLocation":"521:4:247","scope":116115,"visibility":"public"},{"id":115948,"nodeType":"VariableDeclaration","src":"646:40:247","nodes":[],"baseFunctions":[113620],"constant":true,"documentation":{"id":115945,"nodeType":"StructuredDocumentation","src":"583:58:247","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"669:7:247","scope":116115,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":115946,"name":"string","nodeType":"ElementaryTypeName","src":"646:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":115947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"679:7:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":115964,"nodeType":"FunctionDefinition","src":"835:108:247","nodes":[],"body":{"id":115963,"nodeType":"Block","src":"893:50:247","nodes":[],"statements":[{"expression":{"arguments":[{"id":115959,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115951,"src":"922:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":115960,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115953,"src":"929:6:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":115956,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"903:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":115958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBytes32","nodeType":"MemberAccess","referencedDeclaration":108288,"src":"903:18:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":115961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"903:33:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115962,"nodeType":"ExpressionStatement","src":"903:33:247"}]},"documentation":{"id":115949,"nodeType":"StructuredDocumentation","src":"693:137:247","text":"@notice Stores a bytes32 `_value` at `_slot`. Any storage slots that\n are packed should be set through this interface."},"functionSelector":"4e91db08","implemented":true,"kind":"function","modifiers":[],"name":"setBytes32","nameLocation":"844:10:247","parameters":{"id":115954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115951,"mutability":"mutable","name":"_slot","nameLocation":"863:5:247","nodeType":"VariableDeclaration","scope":115964,"src":"855:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":115950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"855:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":115953,"mutability":"mutable","name":"_value","nameLocation":"878:6:247","nodeType":"VariableDeclaration","scope":115964,"src":"870:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":115952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"870:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"854:31:247"},"returnParameters":{"id":115955,"nodeType":"ParameterList","parameters":[],"src":"893:0:247"},"scope":116115,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":116002,"nodeType":"FunctionDefinition","src":"1013:211:247","nodes":[],"body":{"id":116001,"nodeType":"Block","src":"1063:161:247","nodes":[],"statements":[{"assignments":[115973],"declarations":[{"constant":false,"id":115973,"mutability":"mutable","name":"length","nameLocation":"1081:6:247","nodeType":"VariableDeclaration","scope":116001,"src":"1073:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115976,"initialValue":{"expression":{"id":115974,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115969,"src":"1090:5:247","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$115944_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":115975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1090:12:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1073:29:247"},{"body":{"id":115999,"nodeType":"Block","src":"1145:73:247","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":115989,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115969,"src":"1178:5:247","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$115944_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":115991,"indexExpression":{"id":115990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115978,"src":"1184:1:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1178:8:247","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$115944_calldata_ptr","typeString":"struct StorageSetter.Slot calldata"}},"id":115992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"key","nodeType":"MemberAccess","referencedDeclaration":115941,"src":"1178:12:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":115993,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115969,"src":"1192:5:247","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$115944_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":115995,"indexExpression":{"id":115994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115978,"src":"1198:1:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1192:8:247","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$115944_calldata_ptr","typeString":"struct StorageSetter.Slot calldata"}},"id":115996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":115943,"src":"1192:14:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":115986,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"1159:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":115988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBytes32","nodeType":"MemberAccess","referencedDeclaration":108288,"src":"1159:18:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":115997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1159:48:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115998,"nodeType":"ExpressionStatement","src":"1159:48:247"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115980,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115978,"src":"1128:1:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":115981,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115973,"src":"1132:6:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:10:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":116000,"initializationExpression":{"assignments":[115978],"declarations":[{"constant":false,"id":115978,"mutability":"mutable","name":"i","nameLocation":"1125:1:247","nodeType":"VariableDeclaration","scope":116000,"src":"1117:9:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115979,"nodeType":"VariableDeclarationStatement","src":"1117:9:247"},"loopExpression":{"expression":{"id":115984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1140:3:247","subExpression":{"id":115983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115978,"src":"1140:1:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115985,"nodeType":"ExpressionStatement","src":"1140:3:247"},"nodeType":"ForStatement","src":"1112:106:247"}]},"documentation":{"id":115965,"nodeType":"StructuredDocumentation","src":"949:59:247","text":"@notice Stores a bytes32 value at each key in `_slots`."},"functionSelector":"0528afe2","implemented":true,"kind":"function","modifiers":[],"name":"setBytes32","nameLocation":"1022:10:247","parameters":{"id":115970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115969,"mutability":"mutable","name":"slots","nameLocation":"1049:5:247","nodeType":"VariableDeclaration","scope":116002,"src":"1033:21:247","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$115944_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot[]"},"typeName":{"baseType":{"id":115967,"nodeType":"UserDefinedTypeName","pathNode":{"id":115966,"name":"Slot","nodeType":"IdentifierPath","referencedDeclaration":115944,"src":"1033:4:247"},"referencedDeclaration":115944,"src":"1033:4:247","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$115944_storage_ptr","typeString":"struct StorageSetter.Slot"}},"id":115968,"nodeType":"ArrayTypeName","src":"1033:6:247","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$115944_storage_$dyn_storage_ptr","typeString":"struct StorageSetter.Slot[]"}},"visibility":"internal"}],"src":"1032:23:247"},"returnParameters":{"id":115971,"nodeType":"ParameterList","parameters":[],"src":"1063:0:247"},"scope":116115,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":116018,"nodeType":"FunctionDefinition","src":"1286:125:247","nodes":[],"body":{"id":116017,"nodeType":"Block","src":"1360:51:247","nodes":[],"statements":[{"expression":{"id":116015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116010,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116008,"src":"1370:6:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":116013,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116005,"src":"1398:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":116011,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"1379:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBytes32","nodeType":"MemberAccess","referencedDeclaration":108278,"src":"1379:18:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":116014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1379:25:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1370:34:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":116016,"nodeType":"ExpressionStatement","src":"1370:34:247"}]},"documentation":{"id":116003,"nodeType":"StructuredDocumentation","src":"1230:51:247","text":"@notice Retrieves a bytes32 value from `_slot`."},"functionSelector":"a6ed563e","implemented":true,"kind":"function","modifiers":[],"name":"getBytes32","nameLocation":"1295:10:247","parameters":{"id":116006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116005,"mutability":"mutable","name":"_slot","nameLocation":"1314:5:247","nodeType":"VariableDeclaration","scope":116018,"src":"1306:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1306:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1305:15:247"},"returnParameters":{"id":116009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116008,"mutability":"mutable","name":"value_","nameLocation":"1352:6:247","nodeType":"VariableDeclaration","scope":116018,"src":"1344:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1344:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1343:16:247"},"scope":116115,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":116034,"nodeType":"FunctionDefinition","src":"1471:102:247","nodes":[],"body":{"id":116033,"nodeType":"Block","src":"1526:47:247","nodes":[],"statements":[{"expression":{"arguments":[{"id":116029,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116021,"src":"1552:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":116030,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116023,"src":"1559:6:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":116026,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"1536:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setUint","nodeType":"MemberAccess","referencedDeclaration":108268,"src":"1536:15:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":116031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1536:30:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":116032,"nodeType":"ExpressionStatement","src":"1536:30:247"}]},"documentation":{"id":116019,"nodeType":"StructuredDocumentation","src":"1417:49:247","text":"@notice Stores a uint256 `_value` at `_slot`."},"functionSelector":"e2a4853a","implemented":true,"kind":"function","modifiers":[],"name":"setUint","nameLocation":"1480:7:247","parameters":{"id":116024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116021,"mutability":"mutable","name":"_slot","nameLocation":"1496:5:247","nodeType":"VariableDeclaration","scope":116034,"src":"1488:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1488:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":116023,"mutability":"mutable","name":"_value","nameLocation":"1511:6:247","nodeType":"VariableDeclaration","scope":116034,"src":"1503:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":116022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1503:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1487:31:247"},"returnParameters":{"id":116025,"nodeType":"ParameterList","parameters":[],"src":"1526:0:247"},"scope":116115,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":116050,"nodeType":"FunctionDefinition","src":"1635:119:247","nodes":[],"body":{"id":116049,"nodeType":"Block","src":"1706:48:247","nodes":[],"statements":[{"expression":{"id":116047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116042,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116040,"src":"1716:6:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":116045,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116037,"src":"1741:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":116043,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"1725:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":108258,"src":"1725:15:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":116046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1725:22:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1716:31:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116048,"nodeType":"ExpressionStatement","src":"1716:31:247"}]},"documentation":{"id":116035,"nodeType":"StructuredDocumentation","src":"1579:51:247","text":"@notice Retrieves a uint256 value from `_slot`."},"functionSelector":"bd02d0f5","implemented":true,"kind":"function","modifiers":[],"name":"getUint","nameLocation":"1644:7:247","parameters":{"id":116038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116037,"mutability":"mutable","name":"_slot","nameLocation":"1660:5:247","nodeType":"VariableDeclaration","scope":116050,"src":"1652:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1652:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1651:15:247"},"returnParameters":{"id":116041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116040,"mutability":"mutable","name":"value_","nameLocation":"1698:6:247","nodeType":"VariableDeclaration","scope":116050,"src":"1690:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":116039,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1689:16:247"},"scope":116115,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":116066,"nodeType":"FunctionDefinition","src":"1815:112:247","nodes":[],"body":{"id":116065,"nodeType":"Block","src":"1875:52:247","nodes":[],"statements":[{"expression":{"arguments":[{"id":116061,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116053,"src":"1904:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":116062,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116055,"src":"1911:8:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":116058,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"1885:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAddress","nodeType":"MemberAccess","referencedDeclaration":108248,"src":"1885:18:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":116063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1885:35:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":116064,"nodeType":"ExpressionStatement","src":"1885:35:247"}]},"documentation":{"id":116051,"nodeType":"StructuredDocumentation","src":"1760:50:247","text":"@notice Stores an address `_value` at `_slot`."},"functionSelector":"ca446dd9","implemented":true,"kind":"function","modifiers":[],"name":"setAddress","nameLocation":"1824:10:247","parameters":{"id":116056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116053,"mutability":"mutable","name":"_slot","nameLocation":"1843:5:247","nodeType":"VariableDeclaration","scope":116066,"src":"1835:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":116055,"mutability":"mutable","name":"_address","nameLocation":"1858:8:247","nodeType":"VariableDeclaration","scope":116066,"src":"1850:16:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":116054,"name":"address","nodeType":"ElementaryTypeName","src":"1850:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1834:33:247"},"returnParameters":{"id":116057,"nodeType":"ParameterList","parameters":[],"src":"1875:0:247"},"scope":116115,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":116082,"nodeType":"FunctionDefinition","src":"1990:123:247","nodes":[],"body":{"id":116081,"nodeType":"Block","src":"2063:50:247","nodes":[],"statements":[{"expression":{"id":116079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116074,"name":"addr_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116072,"src":"2073:5:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":116077,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116069,"src":"2100:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":116075,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"2081:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":108238,"src":"2081:18:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":116078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:25:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2073:33:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":116080,"nodeType":"ExpressionStatement","src":"2073:33:247"}]},"documentation":{"id":116067,"nodeType":"StructuredDocumentation","src":"1933:52:247","text":"@notice Retrieves an address value from `_slot`."},"functionSelector":"21f8a721","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1999:10:247","parameters":{"id":116070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116069,"mutability":"mutable","name":"_slot","nameLocation":"2018:5:247","nodeType":"VariableDeclaration","scope":116082,"src":"2010:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2009:15:247"},"returnParameters":{"id":116073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116072,"mutability":"mutable","name":"addr_","nameLocation":"2056:5:247","nodeType":"VariableDeclaration","scope":116082,"src":"2048:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":116071,"name":"address","nodeType":"ElementaryTypeName","src":"2048:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2047:15:247"},"scope":116115,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":116098,"nodeType":"FunctionDefinition","src":"2170:99:247","nodes":[],"body":{"id":116097,"nodeType":"Block","src":"2222:47:247","nodes":[],"statements":[{"expression":{"arguments":[{"id":116093,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116085,"src":"2248:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":116094,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116087,"src":"2255:6:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":116090,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"2232:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBool","nodeType":"MemberAccess","referencedDeclaration":108298,"src":"2232:15:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":116095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2232:30:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":116096,"nodeType":"ExpressionStatement","src":"2232:30:247"}]},"documentation":{"id":116083,"nodeType":"StructuredDocumentation","src":"2119:46:247","text":"@notice Stores a bool `_value` at `_slot`."},"functionSelector":"abfdcced","implemented":true,"kind":"function","modifiers":[],"name":"setBool","nameLocation":"2179:7:247","parameters":{"id":116088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116085,"mutability":"mutable","name":"_slot","nameLocation":"2195:5:247","nodeType":"VariableDeclaration","scope":116098,"src":"2187:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":116087,"mutability":"mutable","name":"_value","nameLocation":"2207:6:247","nodeType":"VariableDeclaration","scope":116098,"src":"2202:11:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":116086,"name":"bool","nodeType":"ElementaryTypeName","src":"2202:4:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2186:28:247"},"returnParameters":{"id":116089,"nodeType":"ParameterList","parameters":[],"src":"2222:0:247"},"scope":116115,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":116114,"nodeType":"FunctionDefinition","src":"2328:116:247","nodes":[],"body":{"id":116113,"nodeType":"Block","src":"2396:48:247","nodes":[],"statements":[{"expression":{"id":116111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116106,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116104,"src":"2406:6:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":116109,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116101,"src":"2431:5:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":116107,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108309,"src":"2415:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$108309_$","typeString":"type(library Storage)"}},"id":116108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBool","nodeType":"MemberAccess","referencedDeclaration":108308,"src":"2415:15:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":116110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2415:22:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2406:31:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":116112,"nodeType":"ExpressionStatement","src":"2406:31:247"}]},"documentation":{"id":116099,"nodeType":"StructuredDocumentation","src":"2275:48:247","text":"@notice Retrieves a bool value from `_slot`."},"functionSelector":"7ae1cfca","implemented":true,"kind":"function","modifiers":[],"name":"getBool","nameLocation":"2337:7:247","parameters":{"id":116102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116101,"mutability":"mutable","name":"_slot","nameLocation":"2353:5:247","nodeType":"VariableDeclaration","scope":116114,"src":"2345:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2345:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2344:15:247"},"returnParameters":{"id":116105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116104,"mutability":"mutable","name":"value_","nameLocation":"2388:6:247","nodeType":"VariableDeclaration","scope":116114,"src":"2383:11:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":116103,"name":"bool","nodeType":"ElementaryTypeName","src":"2383:4:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2382:13:247"},"scope":116115,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":115938,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":113621,"src":"442:7:247"},"id":115939,"nodeType":"InheritanceSpecifier","src":"442:7:247"}],"canonicalName":"StorageSetter","contractDependencies":[],"contractKind":"contract","documentation":{"id":115937,"nodeType":"StructuredDocumentation","src":"164:252:247","text":"@title StorageSetter\n @notice A simple contract that allows setting arbitrary storage slots.\n WARNING: this contract is not safe to be called by untrusted parties.\n It is only meant as an intermediate step during upgrades."},"fullyImplemented":true,"linearizedBaseContracts":[116115,113621],"name":"StorageSetter","nameLocation":"425:13:247","scope":116116,"usedErrors":[]}],"license":"MIT"},"id":247}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:60;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":60}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:62;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:62:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":53735,"exportedSymbols":{"Strings":[53734]},"nodeType":"SourceUnit","src":"101:2296:62","nodes":[{"id":53510,"nodeType":"PragmaDirective","src":"101:23:62","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53734,"nodeType":"ContractDefinition","src":"161:2235:62","nodes":[{"id":53514,"nodeType":"VariableDeclaration","src":"183:58:62","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:62","scope":53734,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":53512,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:62","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":53513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":53517,"nodeType":"VariableDeclaration","src":"247:43:62","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:62","scope":53734,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53515,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:62","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":53516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:62","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":53596,"nodeType":"FunctionDefinition","src":"392:703:62","nodes":[],"body":{"id":53595,"nodeType":"Block","src":"463:632:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53525,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"665:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53531,"nodeType":"IfStatement","src":"661:51:62","trueBody":{"id":53530,"nodeType":"Block","src":"677:35:62","statements":[{"expression":{"hexValue":"30","id":53528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":53524,"id":53529,"nodeType":"Return","src":"691:10:62"}]}},{"assignments":[53533],"declarations":[{"constant":false,"id":53533,"mutability":"mutable","name":"temp","nameLocation":"729:4:62","nodeType":"VariableDeclaration","scope":53595,"src":"721:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53532,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53535,"initialValue":{"id":53534,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"736:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:62"},{"assignments":[53537],"declarations":[{"constant":false,"id":53537,"mutability":"mutable","name":"digits","nameLocation":"759:6:62","nodeType":"VariableDeclaration","scope":53595,"src":"751:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53536,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53538,"nodeType":"VariableDeclarationStatement","src":"751:14:62"},{"body":{"id":53549,"nodeType":"Block","src":"793:57:62","statements":[{"expression":{"id":53543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:62","subExpression":{"id":53542,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53537,"src":"807:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53544,"nodeType":"ExpressionStatement","src":"807:8:62"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53545,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53533,"src":"829:4:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":53546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:62","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53548,"nodeType":"ExpressionStatement","src":"829:10:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53539,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53533,"src":"782:4:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":53540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53550,"nodeType":"WhileStatement","src":"775:75:62"},{"assignments":[53552],"declarations":[{"constant":false,"id":53552,"mutability":"mutable","name":"buffer","nameLocation":"872:6:62","nodeType":"VariableDeclaration","scope":53595,"src":"859:19:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53551,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":53557,"initialValue":{"arguments":[{"id":53555,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53537,"src":"891:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:62","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53553,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:62"},{"body":{"id":53588,"nodeType":"Block","src":"927:131:62","statements":[{"expression":{"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53561,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53537,"src":"941:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":53562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53564,"nodeType":"ExpressionStatement","src":"941:11:62"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53565,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53552,"src":"966:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53567,"indexExpression":{"id":53566,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53537,"src":"973:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":53572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:62","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"1009:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":53576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:62","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":53573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:62","typeDescriptions":{}}},"id":53578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":53570,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:62","typeDescriptions":{}}},"id":53580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":53568,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:62","typeDescriptions":{}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"983:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":53583,"nodeType":"ExpressionStatement","src":"966:56:62"},{"expression":{"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"1036:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":53585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:62","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53587,"nodeType":"ExpressionStatement","src":"1036:11:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"915:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53589,"nodeType":"WhileStatement","src":"908:150:62"},{"expression":{"arguments":[{"id":53592,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53552,"src":"1081:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":53590,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:62","typeDescriptions":{}}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:14:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":53524,"id":53594,"nodeType":"Return","src":"1067:21:62"}]},"documentation":{"id":53518,"nodeType":"StructuredDocumentation","src":"297:90:62","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:62","parameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"value","nameLocation":"418:5:62","nodeType":"VariableDeclaration","scope":53596,"src":"410:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53519,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:62"},"returnParameters":{"id":53524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53596,"src":"448:13:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53522,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:62"},"scope":53734,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":53637,"nodeType":"FunctionDefinition","src":"1200:329:62","nodes":[],"body":{"id":53636,"nodeType":"Block","src":"1274:255:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"1288:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53610,"nodeType":"IfStatement","src":"1284:54:62","trueBody":{"id":53609,"nodeType":"Block","src":"1300:38:62","statements":[{"expression":{"hexValue":"30783030","id":53607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":53603,"id":53608,"nodeType":"Return","src":"1314:13:62"}]}},{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"temp","nameLocation":"1355:4:62","nodeType":"VariableDeclaration","scope":53636,"src":"1347:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53614,"initialValue":{"id":53613,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"1362:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:62"},{"assignments":[53616],"declarations":[{"constant":false,"id":53616,"mutability":"mutable","name":"length","nameLocation":"1385:6:62","nodeType":"VariableDeclaration","scope":53636,"src":"1377:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53618,"initialValue":{"hexValue":"30","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:62"},{"body":{"id":53629,"nodeType":"Block","src":"1423:57:62","statements":[{"expression":{"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:62","subExpression":{"id":53622,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53616,"src":"1437:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53624,"nodeType":"ExpressionStatement","src":"1437:8:62"},{"expression":{"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53625,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"1459:4:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:62","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53628,"nodeType":"ExpressionStatement","src":"1459:10:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53619,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"1412:4:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53630,"nodeType":"WhileStatement","src":"1405:75:62"},{"expression":{"arguments":[{"id":53632,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"1508:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53633,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53616,"src":"1515:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53631,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[53637,53713,53733],"referencedDeclaration":53713,"src":"1496:11:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":53634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1496:26:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":53603,"id":53635,"nodeType":"Return","src":"1489:33:62"}]},"documentation":{"id":53597,"nodeType":"StructuredDocumentation","src":"1101:94:62","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:62","parameters":{"id":53600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53599,"mutability":"mutable","name":"value","nameLocation":"1229:5:62","nodeType":"VariableDeclaration","scope":53637,"src":"1221:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53598,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:62"},"returnParameters":{"id":53603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53637,"src":"1259:13:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53601,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:62"},"scope":53734,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":53713,"nodeType":"FunctionDefinition","src":"1652:441:62","nodes":[],"body":{"id":53712,"nodeType":"Block","src":"1742:351:62","nodes":[],"statements":[{"assignments":[53648],"declarations":[{"constant":false,"id":53648,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:62","nodeType":"VariableDeclaration","scope":53712,"src":"1752:19:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53647,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":53657,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":53651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:62","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":53652,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53642,"src":"1788:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":53654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:62","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:62","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53649,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:25:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:62"},{"expression":{"id":53662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53658,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"1809:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53660,"indexExpression":{"hexValue":"30","id":53659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":53661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":53663,"nodeType":"ExpressionStatement","src":"1809:15:62"},{"expression":{"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53664,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"1834:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"indexExpression":{"hexValue":"31","id":53665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":53667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":53669,"nodeType":"ExpressionStatement","src":"1834:15:62"},{"body":{"id":53698,"nodeType":"Block","src":"1904:87:62","statements":[{"expression":{"id":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53684,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"1918:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53686,"indexExpression":{"id":53685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53671,"src":"1925:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":53687,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"1930:12:62","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":53691,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53688,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53640,"src":"1943:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":53689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:62","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:62","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":53693,"nodeType":"ExpressionStatement","src":"1918:37:62"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53640,"src":"1969:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":53695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:62","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53697,"nodeType":"ExpressionStatement","src":"1969:11:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53671,"src":"1892:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":53679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53699,"initializationExpression":{"assignments":[53671],"declarations":[{"constant":false,"id":53671,"mutability":"mutable","name":"i","nameLocation":"1872:1:62","nodeType":"VariableDeclaration","scope":53699,"src":"1864:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53677,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":53672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:62","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":53673,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53642,"src":"1880:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:62"},"loopExpression":{"expression":{"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:62","subExpression":{"id":53681,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53671,"src":"1901:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53683,"nodeType":"ExpressionStatement","src":"1899:3:62"},"nodeType":"ForStatement","src":"1859:132:62"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53640,"src":"2008:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":53704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":53700,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2000:7:62","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:55:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53706,"nodeType":"ExpressionStatement","src":"2000:55:62"},{"expression":{"arguments":[{"id":53709,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"2079:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":53707,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:62","typeDescriptions":{}}},"id":53710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:14:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":53646,"id":53711,"nodeType":"Return","src":"2065:21:62"}]},"documentation":{"id":53638,"nodeType":"StructuredDocumentation","src":"1535:112:62","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:62","parameters":{"id":53643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53640,"mutability":"mutable","name":"value","nameLocation":"1681:5:62","nodeType":"VariableDeclaration","scope":53713,"src":"1673:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53639,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53642,"mutability":"mutable","name":"length","nameLocation":"1696:6:62","nodeType":"VariableDeclaration","scope":53713,"src":"1688:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53641,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:62"},"returnParameters":{"id":53646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53713,"src":"1727:13:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53644,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:62"},"scope":53734,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"2245:149:62","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"2318:76:62","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":53726,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53716,"src":"2363:4:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":53724,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:62","typeDescriptions":{}}},"id":53727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":53723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":53722,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:62","typeDescriptions":{}}},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2347:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53729,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53517,"src":"2371:15:62","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":53721,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[53637,53713,53733],"referencedDeclaration":53713,"src":"2335:11:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2335:52:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":53720,"id":53731,"nodeType":"Return","src":"2328:59:62"}]},"documentation":{"id":53714,"nodeType":"StructuredDocumentation","src":"2099:141:62","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:62","parameters":{"id":53717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53716,"mutability":"mutable","name":"addr","nameLocation":"2274:4:62","nodeType":"VariableDeclaration","scope":53733,"src":"2266:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53715,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:62"},"returnParameters":{"id":53720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53733,"src":"2303:13:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53718,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:62"},"scope":53734,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":53511,"nodeType":"StructuredDocumentation","src":"126:34:62","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[53734],"name":"Strings","nameLocation":"169:7:62","scope":53735,"usedErrors":[]}],"license":"MIT"},"id":62}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":2}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":535,"exportedSymbols":{"Strings":[534]},"nodeType":"SourceUnit","src":"101:2296:2","nodes":[{"id":310,"nodeType":"PragmaDirective","src":"101:23:2","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":534,"nodeType":"ContractDefinition","src":"161:2235:2","nodes":[{"id":314,"nodeType":"VariableDeclaration","src":"183:58:2","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:2","scope":534,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":312,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:2","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":317,"nodeType":"VariableDeclaration","src":"247:43:2","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:2","scope":534,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":315,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:2","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":396,"nodeType":"FunctionDefinition","src":"392:703:2","nodes":[],"body":{"id":395,"nodeType":"Block","src":"463:632:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"665:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":331,"nodeType":"IfStatement","src":"661:51:2","trueBody":{"id":330,"nodeType":"Block","src":"677:35:2","statements":[{"expression":{"hexValue":"30","id":328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":324,"id":329,"nodeType":"Return","src":"691:10:2"}]}},{"assignments":[333],"declarations":[{"constant":false,"id":333,"mutability":"mutable","name":"temp","nameLocation":"729:4:2","nodeType":"VariableDeclaration","scope":395,"src":"721:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":332,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":335,"initialValue":{"id":334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"736:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:2"},{"assignments":[337],"declarations":[{"constant":false,"id":337,"mutability":"mutable","name":"digits","nameLocation":"759:6:2","nodeType":"VariableDeclaration","scope":395,"src":"751:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":336,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":338,"nodeType":"VariableDeclarationStatement","src":"751:14:2"},{"body":{"id":349,"nodeType":"Block","src":"793:57:2","statements":[{"expression":{"id":343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:2","subExpression":{"id":342,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"807:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":344,"nodeType":"ExpressionStatement","src":"807:8:2"},{"expression":{"id":347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":345,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"829:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":348,"nodeType":"ExpressionStatement","src":"829:10:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":339,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"782:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":350,"nodeType":"WhileStatement","src":"775:75:2"},{"assignments":[352],"declarations":[{"constant":false,"id":352,"mutability":"mutable","name":"buffer","nameLocation":"872:6:2","nodeType":"VariableDeclaration","scope":395,"src":"859:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":351,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":357,"initialValue":{"arguments":[{"id":355,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"891:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":353,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:2"},{"body":{"id":388,"nodeType":"Block","src":"927:131:2","statements":[{"expression":{"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":361,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"941:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":364,"nodeType":"ExpressionStatement","src":"941:11:2"},{"expression":{"id":382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":365,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"966:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":367,"indexExpression":{"id":366,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"973:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:2","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":375,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"1009:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:2","typeDescriptions":{}}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1001:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":370,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:2","typeDescriptions":{}}},"id":380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":368,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:2","typeDescriptions":{}}},"id":381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"983:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":383,"nodeType":"ExpressionStatement","src":"966:56:2"},{"expression":{"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":384,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"1036:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":387,"nodeType":"ExpressionStatement","src":"1036:11:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"915:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":389,"nodeType":"WhileStatement","src":"908:150:2"},{"expression":{"arguments":[{"id":392,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"1081:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":390,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:2","typeDescriptions":{}}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":324,"id":394,"nodeType":"Return","src":"1067:21:2"}]},"documentation":{"id":318,"nodeType":"StructuredDocumentation","src":"297:90:2","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:2","parameters":{"id":321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":320,"mutability":"mutable","name":"value","nameLocation":"418:5:2","nodeType":"VariableDeclaration","scope":396,"src":"410:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":319,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:2"},"returnParameters":{"id":324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":396,"src":"448:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":322,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":437,"nodeType":"FunctionDefinition","src":"1200:329:2","nodes":[],"body":{"id":436,"nodeType":"Block","src":"1274:255:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1288:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":410,"nodeType":"IfStatement","src":"1284:54:2","trueBody":{"id":409,"nodeType":"Block","src":"1300:38:2","statements":[{"expression":{"hexValue":"30783030","id":407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":403,"id":408,"nodeType":"Return","src":"1314:13:2"}]}},{"assignments":[412],"declarations":[{"constant":false,"id":412,"mutability":"mutable","name":"temp","nameLocation":"1355:4:2","nodeType":"VariableDeclaration","scope":436,"src":"1347:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":414,"initialValue":{"id":413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1362:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:2"},{"assignments":[416],"declarations":[{"constant":false,"id":416,"mutability":"mutable","name":"length","nameLocation":"1385:6:2","nodeType":"VariableDeclaration","scope":436,"src":"1377:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":418,"initialValue":{"hexValue":"30","id":417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:2"},{"body":{"id":429,"nodeType":"Block","src":"1423:57:2","statements":[{"expression":{"id":423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:2","subExpression":{"id":422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"1437:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":424,"nodeType":"ExpressionStatement","src":"1437:8:2"},{"expression":{"id":427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":425,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"1459:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:2","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":428,"nodeType":"ExpressionStatement","src":"1459:10:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":419,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"1412:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":430,"nodeType":"WhileStatement","src":"1405:75:2"},{"expression":{"arguments":[{"id":432,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1508:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":433,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"1515:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":431,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[437,513,533],"referencedDeclaration":513,"src":"1496:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1496:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":403,"id":435,"nodeType":"Return","src":"1489:33:2"}]},"documentation":{"id":397,"nodeType":"StructuredDocumentation","src":"1101:94:2","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:2","parameters":{"id":400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":399,"mutability":"mutable","name":"value","nameLocation":"1229:5:2","nodeType":"VariableDeclaration","scope":437,"src":"1221:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":398,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:2"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":437,"src":"1259:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":401,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":513,"nodeType":"FunctionDefinition","src":"1652:441:2","nodes":[],"body":{"id":512,"nodeType":"Block","src":"1742:351:2","nodes":[],"statements":[{"assignments":[448],"declarations":[{"constant":false,"id":448,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:2","nodeType":"VariableDeclaration","scope":512,"src":"1752:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":447,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":457,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":452,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"1788:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:2"},{"expression":{"id":462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":458,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1809:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":460,"indexExpression":{"hexValue":"30","id":459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":463,"nodeType":"ExpressionStatement","src":"1809:15:2"},{"expression":{"id":468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":464,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1834:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":466,"indexExpression":{"hexValue":"31","id":465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":469,"nodeType":"ExpressionStatement","src":"1834:15:2"},{"body":{"id":498,"nodeType":"Block","src":"1904:87:2","statements":[{"expression":{"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":484,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1918:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":486,"indexExpression":{"id":485,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1925:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":487,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"1930:12:2","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":491,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":488,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"1943:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:2","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":493,"nodeType":"ExpressionStatement","src":"1918:37:2"},{"expression":{"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"1969:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:2","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":497,"nodeType":"ExpressionStatement","src":"1969:11:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":478,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1892:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":499,"initializationExpression":{"assignments":[471],"declarations":[{"constant":false,"id":471,"mutability":"mutable","name":"i","nameLocation":"1872:1:2","nodeType":"VariableDeclaration","scope":499,"src":"1864:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":477,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":473,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"1880:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:2"},"loopExpression":{"expression":{"id":482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:2","subExpression":{"id":481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1901:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":483,"nodeType":"ExpressionStatement","src":"1899:3:2"},"nodeType":"ForStatement","src":"1859:132:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"2008:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2000:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":506,"nodeType":"ExpressionStatement","src":"2000:55:2"},{"expression":{"arguments":[{"id":509,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"2079:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":507,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:2","typeDescriptions":{}}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":446,"id":511,"nodeType":"Return","src":"2065:21:2"}]},"documentation":{"id":438,"nodeType":"StructuredDocumentation","src":"1535:112:2","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:2","parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":440,"mutability":"mutable","name":"value","nameLocation":"1681:5:2","nodeType":"VariableDeclaration","scope":513,"src":"1673:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":442,"mutability":"mutable","name":"length","nameLocation":"1696:6:2","nodeType":"VariableDeclaration","scope":513,"src":"1688:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":441,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:2"},"returnParameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":513,"src":"1727:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":444,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":533,"nodeType":"FunctionDefinition","src":"2245:149:2","nodes":[],"body":{"id":532,"nodeType":"Block","src":"2318:76:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":526,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":516,"src":"2363:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":524,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:2","typeDescriptions":{}}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":522,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:2","typeDescriptions":{}}},"id":528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":529,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2371:15:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":521,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[437,513,533],"referencedDeclaration":513,"src":"2335:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":520,"id":531,"nodeType":"Return","src":"2328:59:2"}]},"documentation":{"id":514,"nodeType":"StructuredDocumentation","src":"2099:141:2","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:2","parameters":{"id":517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":516,"mutability":"mutable","name":"addr","nameLocation":"2274:4:2","nodeType":"VariableDeclaration","scope":533,"src":"2266:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":515,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:2"},"returnParameters":{"id":520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":533,"src":"2303:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":518,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":311,"nodeType":"StructuredDocumentation","src":"126:34:2","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[534],"name":"Strings","nameLocation":"169:7:2","scope":535,"usedErrors":[]}],"license":"MIT"},"id":2}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2246:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":"StringsUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":33}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2246:35;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:35:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":"StringsUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol","id":48872,"exportedSymbols":{"StringsUpgradeable":[48871]},"nodeType":"SourceUnit","src":"101:2307:35","nodes":[{"id":48647,"nodeType":"PragmaDirective","src":"101:23:35","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48871,"nodeType":"ContractDefinition","src":"161:2246:35","nodes":[{"id":48651,"nodeType":"VariableDeclaration","src":"194:58:35","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"219:12:35","scope":48871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":48649,"name":"bytes16","nodeType":"ElementaryTypeName","src":"194:7:35","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":48650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"234:18:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":48654,"nodeType":"VariableDeclaration","src":"258:43:35","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"281:15:35","scope":48871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48652,"name":"uint8","nodeType":"ElementaryTypeName","src":"258:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":48653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"299:2:35","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":48733,"nodeType":"FunctionDefinition","src":"403:703:35","nodes":[],"body":{"id":48732,"nodeType":"Block","src":"474:632:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48662,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"676:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"685:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"676:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48668,"nodeType":"IfStatement","src":"672:51:35","trueBody":{"id":48667,"nodeType":"Block","src":"688:35:35","statements":[{"expression":{"hexValue":"30","id":48665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"709:3:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":48661,"id":48666,"nodeType":"Return","src":"702:10:35"}]}},{"assignments":[48670],"declarations":[{"constant":false,"id":48670,"mutability":"mutable","name":"temp","nameLocation":"740:4:35","nodeType":"VariableDeclaration","scope":48732,"src":"732:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48669,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48672,"initialValue":{"id":48671,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"747:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"732:20:35"},{"assignments":[48674],"declarations":[{"constant":false,"id":48674,"mutability":"mutable","name":"digits","nameLocation":"770:6:35","nodeType":"VariableDeclaration","scope":48732,"src":"762:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48673,"name":"uint256","nodeType":"ElementaryTypeName","src":"762:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48675,"nodeType":"VariableDeclarationStatement","src":"762:14:35"},{"body":{"id":48686,"nodeType":"Block","src":"804:57:35","statements":[{"expression":{"id":48680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"818:8:35","subExpression":{"id":48679,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48674,"src":"818:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48681,"nodeType":"ExpressionStatement","src":"818:8:35"},{"expression":{"id":48684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48682,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48670,"src":"840:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":48683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"848:2:35","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"840:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48685,"nodeType":"ExpressionStatement","src":"840:10:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48676,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48670,"src":"793:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":48677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"801:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"793:9:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48687,"nodeType":"WhileStatement","src":"786:75:35"},{"assignments":[48689],"declarations":[{"constant":false,"id":48689,"mutability":"mutable","name":"buffer","nameLocation":"883:6:35","nodeType":"VariableDeclaration","scope":48732,"src":"870:19:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48688,"name":"bytes","nodeType":"ElementaryTypeName","src":"870:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48694,"initialValue":{"arguments":[{"id":48692,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48674,"src":"902:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"892:9:35","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":48690,"name":"bytes","nodeType":"ElementaryTypeName","src":"896:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":48693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"892:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"870:39:35"},{"body":{"id":48725,"nodeType":"Block","src":"938:131:35","statements":[{"expression":{"id":48700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48698,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48674,"src":"952:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":48699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"962:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"952:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48701,"nodeType":"ExpressionStatement","src":"952:11:35"},{"expression":{"id":48719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48702,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48689,"src":"977:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48704,"indexExpression":{"id":48703,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48674,"src":"984:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"977:14:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":48709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:2:35","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48712,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"1020:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":48713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:2:35","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1020:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1012:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":48710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:35","typeDescriptions":{}}},"id":48715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1012:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1007:24:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48707,"name":"uint8","nodeType":"ElementaryTypeName","src":"1001:5:35","typeDescriptions":{}}},"id":48717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"994:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":48705,"name":"bytes1","nodeType":"ElementaryTypeName","src":"994:6:35","typeDescriptions":{}}},"id":48718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"994:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"977:56:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48720,"nodeType":"ExpressionStatement","src":"977:56:35"},{"expression":{"id":48723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48721,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"1047:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":48722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:35","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1047:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48724,"nodeType":"ExpressionStatement","src":"1047:11:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48695,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"926:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":48696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"935:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"926:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48726,"nodeType":"WhileStatement","src":"919:150:35"},{"expression":{"arguments":[{"id":48729,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48689,"src":"1092:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1085:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":48727,"name":"string","nodeType":"ElementaryTypeName","src":"1085:6:35","typeDescriptions":{}}},"id":48730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1085:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":48661,"id":48731,"nodeType":"Return","src":"1078:21:35"}]},"documentation":{"id":48655,"nodeType":"StructuredDocumentation","src":"308:90:35","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"412:8:35","parameters":{"id":48658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48657,"mutability":"mutable","name":"value","nameLocation":"429:5:35","nodeType":"VariableDeclaration","scope":48733,"src":"421:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48656,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"420:15:35"},"returnParameters":{"id":48661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48733,"src":"459:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48659,"name":"string","nodeType":"ElementaryTypeName","src":"459:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"458:15:35"},"scope":48871,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48774,"nodeType":"FunctionDefinition","src":"1211:329:35","nodes":[],"body":{"id":48773,"nodeType":"Block","src":"1285:255:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48741,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48736,"src":"1299:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1299:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48747,"nodeType":"IfStatement","src":"1295:54:35","trueBody":{"id":48746,"nodeType":"Block","src":"1311:38:35","statements":[{"expression":{"hexValue":"30783030","id":48744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1332:6:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":48740,"id":48745,"nodeType":"Return","src":"1325:13:35"}]}},{"assignments":[48749],"declarations":[{"constant":false,"id":48749,"mutability":"mutable","name":"temp","nameLocation":"1366:4:35","nodeType":"VariableDeclaration","scope":48773,"src":"1358:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48748,"name":"uint256","nodeType":"ElementaryTypeName","src":"1358:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48751,"initialValue":{"id":48750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48736,"src":"1373:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1358:20:35"},{"assignments":[48753],"declarations":[{"constant":false,"id":48753,"mutability":"mutable","name":"length","nameLocation":"1396:6:35","nodeType":"VariableDeclaration","scope":48773,"src":"1388:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1388:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48755,"initialValue":{"hexValue":"30","id":48754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1405:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1388:18:35"},{"body":{"id":48766,"nodeType":"Block","src":"1434:57:35","statements":[{"expression":{"id":48760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1448:8:35","subExpression":{"id":48759,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48753,"src":"1448:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48761,"nodeType":"ExpressionStatement","src":"1448:8:35"},{"expression":{"id":48764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48762,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48749,"src":"1470:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":48763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:1:35","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1470:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48765,"nodeType":"ExpressionStatement","src":"1470:10:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48756,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48749,"src":"1423:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":48757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1431:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1423:9:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48767,"nodeType":"WhileStatement","src":"1416:75:35"},{"expression":{"arguments":[{"id":48769,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48736,"src":"1519:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48770,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48753,"src":"1526:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48768,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[48774,48850,48870],"referencedDeclaration":48850,"src":"1507:11:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":48771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1507:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":48740,"id":48772,"nodeType":"Return","src":"1500:33:35"}]},"documentation":{"id":48734,"nodeType":"StructuredDocumentation","src":"1112:94:35","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1220:11:35","parameters":{"id":48737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48736,"mutability":"mutable","name":"value","nameLocation":"1240:5:35","nodeType":"VariableDeclaration","scope":48774,"src":"1232:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48735,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1231:15:35"},"returnParameters":{"id":48740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48774,"src":"1270:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48738,"name":"string","nodeType":"ElementaryTypeName","src":"1270:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1269:15:35"},"scope":48871,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48850,"nodeType":"FunctionDefinition","src":"1663:441:35","nodes":[],"body":{"id":48849,"nodeType":"Block","src":"1753:351:35","nodes":[],"statements":[{"assignments":[48785],"declarations":[{"constant":false,"id":48785,"mutability":"mutable","name":"buffer","nameLocation":"1776:6:35","nodeType":"VariableDeclaration","scope":48849,"src":"1763:19:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48784,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48794,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":48788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1795:1:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":48789,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48779,"src":"1799:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1795:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":48791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:1:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1795:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1785:9:35","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":48786,"name":"bytes","nodeType":"ElementaryTypeName","src":"1789:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":48793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1763:47:35"},{"expression":{"id":48799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48795,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48785,"src":"1820:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48797,"indexExpression":{"hexValue":"30","id":48796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1827:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1820:9:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":48798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1832:3:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1820:15:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48800,"nodeType":"ExpressionStatement","src":"1820:15:35"},{"expression":{"id":48805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48801,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48785,"src":"1845:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48803,"indexExpression":{"hexValue":"31","id":48802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1845:9:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":48804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:3:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1845:15:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48806,"nodeType":"ExpressionStatement","src":"1845:15:35"},{"body":{"id":48835,"nodeType":"Block","src":"1915:87:35","statements":[{"expression":{"id":48829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48821,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48785,"src":"1929:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48823,"indexExpression":{"id":48822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1936:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1929:9:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":48824,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48651,"src":"1941:12:35","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":48828,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48825,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48777,"src":"1954:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":48826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1962:3:35","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1954:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1941:25:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1929:37:35","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48830,"nodeType":"ExpressionStatement","src":"1929:37:35"},{"expression":{"id":48833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48831,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48777,"src":"1980:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":48832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1990:1:35","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1980:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48834,"nodeType":"ExpressionStatement","src":"1980:11:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1903:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":48816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1907:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1903:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48836,"initializationExpression":{"assignments":[48808],"declarations":[{"constant":false,"id":48808,"mutability":"mutable","name":"i","nameLocation":"1883:1:35","nodeType":"VariableDeclaration","scope":48836,"src":"1875:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1875:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48814,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":48809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:1:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":48810,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48779,"src":"1891:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1887:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1887:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1875:26:35"},"loopExpression":{"expression":{"id":48819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1910:3:35","subExpression":{"id":48818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1912:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48820,"nodeType":"ExpressionStatement","src":"1910:3:35"},"nodeType":"ForStatement","src":"1870:132:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48777,"src":"2019:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2028:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2019:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":48841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2031:34:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":48837,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2011:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:55:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48843,"nodeType":"ExpressionStatement","src":"2011:55:35"},{"expression":{"arguments":[{"id":48846,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48785,"src":"2090:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2083:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":48844,"name":"string","nodeType":"ElementaryTypeName","src":"2083:6:35","typeDescriptions":{}}},"id":48847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2083:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":48783,"id":48848,"nodeType":"Return","src":"2076:21:35"}]},"documentation":{"id":48775,"nodeType":"StructuredDocumentation","src":"1546:112:35","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1672:11:35","parameters":{"id":48780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48777,"mutability":"mutable","name":"value","nameLocation":"1692:5:35","nodeType":"VariableDeclaration","scope":48850,"src":"1684:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48776,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48779,"mutability":"mutable","name":"length","nameLocation":"1707:6:35","nodeType":"VariableDeclaration","scope":48850,"src":"1699:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48778,"name":"uint256","nodeType":"ElementaryTypeName","src":"1699:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1683:31:35"},"returnParameters":{"id":48783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48850,"src":"1738:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48781,"name":"string","nodeType":"ElementaryTypeName","src":"1738:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1737:15:35"},"scope":48871,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48870,"nodeType":"FunctionDefinition","src":"2256:149:35","nodes":[],"body":{"id":48869,"nodeType":"Block","src":"2329:76:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":48863,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48853,"src":"2374:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":48861,"name":"uint160","nodeType":"ElementaryTypeName","src":"2366:7:35","typeDescriptions":{}}},"id":48864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2366:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":48860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2358:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":48859,"name":"uint256","nodeType":"ElementaryTypeName","src":"2358:7:35","typeDescriptions":{}}},"id":48865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2358:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48866,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48654,"src":"2382:15:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48858,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[48774,48850,48870],"referencedDeclaration":48850,"src":"2346:11:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":48867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:52:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":48857,"id":48868,"nodeType":"Return","src":"2339:59:35"}]},"documentation":{"id":48851,"nodeType":"StructuredDocumentation","src":"2110:141:35","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2265:11:35","parameters":{"id":48854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48853,"mutability":"mutable","name":"addr","nameLocation":"2285:4:35","nodeType":"VariableDeclaration","scope":48870,"src":"2277:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48852,"name":"address","nodeType":"ElementaryTypeName","src":"2277:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2276:14:35"},"returnParameters":{"id":48857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48870,"src":"2314:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48855,"name":"string","nodeType":"ElementaryTypeName","src":"2314:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2313:15:35"},"scope":48871,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"StringsUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":48648,"nodeType":"StructuredDocumentation","src":"126:34:35","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[48871],"name":"StringsUpgradeable","nameLocation":"169:18:35","scope":48872,"usedErrors":[]}],"license":"MIT"},"id":35}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":119,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"7","type":"t_bool"},{"astId":121,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":1,"slot":"7","type":"t_bool"},{"astId":3878,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":2,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":6687,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"12","type":"t_struct(StdStorage)8562_storage"},{"astId":7555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"19","type":"t_array(t_address)dyn_storage"},{"astId":7558,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"20","type":"t_array(t_address)dyn_storage"},{"astId":7561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":7564,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":7567,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"23","type":"t_array(t_string_storage)dyn_storage"},{"astId":7570,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"24","type":"t_array(t_string_storage)dyn_storage"},{"astId":7574,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"25","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7578,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"26","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7582,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"27","type":"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)7552_storage"},"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)7546_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FuzzInterface)7552_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":7548,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7551,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)7546_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":7542,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7545,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Test.sol:Test","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":14}
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7466_storage"},{"astId":257,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":2758,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":2779,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)2774_storage)"},{"astId":2783,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":2787,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":2790,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":3548,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":5585,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)7466_storage"},{"astId":6453,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":6456,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":6459,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":6462,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":6465,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":6468,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":6472,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)6444_storage)dyn_storage"},{"astId":6476,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)6444_storage)dyn_storage"},{"astId":6480,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)6450_storage)dyn_storage"},{"astId":12065,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)6450_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)6450_storage"},"t_array(t_struct(FuzzSelector)6444_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)6444_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7441_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7441_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7441_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)2774_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)2774_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)2774_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":2767,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":2769,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":2771,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":2773,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)7441_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7434,"contract":"lib/forge-std/src/Test.sol:Test","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7436,"contract":"lib/forge-std/src/Test.sol:Test","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7438,"contract":"lib/forge-std/src/Test.sol:Test","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7440,"contract":"lib/forge-std/src/Test.sol:Test","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)6450_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":6446,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":6449,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)6444_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":6440,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":6443,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)7466_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7450,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7441_storage)))"},{"astId":7453,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7455,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7457,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7459,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7461,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7463,"contract":"lib/forge-std/src/Test.sol:Test","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7465,"contract":"lib/forge-std/src/Test.sol:Test","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Test.sol","id":12067,"exportedSymbols":{"StdAssertions":[2734],"StdChains":[3516],"StdCheats":[6369],"StdInvariant":[6694],"StdStorage":[7466],"StdStyle":[10636],"StdUtils":[12014],"Test":[12066],"TestBase":[65],"Vm":[15843],"console":[23907],"console2":[32032],"safeconsole":[46757],"stdError":[6435],"stdJson":[7286],"stdMath":[7428],"stdStorage":[9425],"stdToml":[11228]},"nodeType":"SourceUnit","src":"32:1014:13","nodes":[{"id":12016,"nodeType":"PragmaDirective","src":"32:31:13","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":12017,"nodeType":"PragmaDirective","src":"65:33:13","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":12019,"nodeType":"ImportDirective","src":"160:38:13","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":23908,"symbolAliases":[{"foreign":{"id":12018,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23907,"src":"168:7:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12021,"nodeType":"ImportDirective","src":"199:40:13","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":32033,"symbolAliases":[{"foreign":{"id":12020,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32032,"src":"207:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12023,"nodeType":"ImportDirective","src":"240:46:13","nodes":[],"absolutePath":"lib/forge-std/src/safeconsole.sol","file":"./safeconsole.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":46758,"symbolAliases":[{"foreign":{"id":12022,"name":"safeconsole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"248:11:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12025,"nodeType":"ImportDirective","src":"287:50:13","nodes":[],"absolutePath":"lib/forge-std/src/StdAssertions.sol","file":"./StdAssertions.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":2735,"symbolAliases":[{"foreign":{"id":12024,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"295:13:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12027,"nodeType":"ImportDirective","src":"338:42:13","nodes":[],"absolutePath":"lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":3517,"symbolAliases":[{"foreign":{"id":12026,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"346:9:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12029,"nodeType":"ImportDirective","src":"381:42:13","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":6370,"symbolAliases":[{"foreign":{"id":12028,"name":"StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"389:9:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12031,"nodeType":"ImportDirective","src":"424:40:13","nodes":[],"absolutePath":"lib/forge-std/src/StdError.sol","file":"./StdError.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":6436,"symbolAliases":[{"foreign":{"id":12030,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6435,"src":"432:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12033,"nodeType":"ImportDirective","src":"465:48:13","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"./StdInvariant.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":6695,"symbolAliases":[{"foreign":{"id":12032,"name":"StdInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6694,"src":"473:12:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12035,"nodeType":"ImportDirective","src":"514:38:13","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":7287,"symbolAliases":[{"foreign":{"id":12034,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7286,"src":"522:7:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12037,"nodeType":"ImportDirective","src":"553:38:13","nodes":[],"absolutePath":"lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":7429,"symbolAliases":[{"foreign":{"id":12036,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7428,"src":"561:7:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12040,"nodeType":"ImportDirective","src":"592:56:13","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":9426,"symbolAliases":[{"foreign":{"id":12038,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7466,"src":"600:10:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":12039,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"612:10:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12042,"nodeType":"ImportDirective","src":"649:40:13","nodes":[],"absolutePath":"lib/forge-std/src/StdStyle.sol","file":"./StdStyle.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":10637,"symbolAliases":[{"foreign":{"id":12041,"name":"StdStyle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"657:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12044,"nodeType":"ImportDirective","src":"690:38:13","nodes":[],"absolutePath":"lib/forge-std/src/StdToml.sol","file":"./StdToml.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":11229,"symbolAliases":[{"foreign":{"id":12043,"name":"stdToml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"698:7:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12046,"nodeType":"ImportDirective","src":"729:40:13","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":12015,"symbolAliases":[{"foreign":{"id":12045,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"737:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12048,"nodeType":"ImportDirective","src":"770:28:13","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":15844,"symbolAliases":[{"foreign":{"id":12047,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"778:2:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12050,"nodeType":"ImportDirective","src":"820:36:13","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":12067,"sourceUnit":75,"symbolAliases":[{"foreign":{"id":12049,"name":"TestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"828:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12066,"nodeType":"ContractDefinition","src":"873:172:13","nodes":[{"id":12065,"nodeType":"VariableDeclaration","src":"1016:26:13","nodes":[],"constant":false,"functionSelector":"fa7626d4","mutability":"mutable","name":"IS_TEST","nameLocation":"1028:7:13","scope":12066,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12063,"name":"bool","nodeType":"ElementaryTypeName","src":"1016:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":12064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1038:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":12051,"name":"TestBase","nodeType":"IdentifierPath","referencedDeclaration":65,"src":"899:8:13"},"id":12052,"nodeType":"InheritanceSpecifier","src":"899:8:13"},{"baseName":{"id":12053,"name":"StdAssertions","nodeType":"IdentifierPath","referencedDeclaration":2734,"src":"909:13:13"},"id":12054,"nodeType":"InheritanceSpecifier","src":"909:13:13"},{"baseName":{"id":12055,"name":"StdChains","nodeType":"IdentifierPath","referencedDeclaration":3516,"src":"924:9:13"},"id":12056,"nodeType":"InheritanceSpecifier","src":"924:9:13"},{"baseName":{"id":12057,"name":"StdCheats","nodeType":"IdentifierPath","referencedDeclaration":6369,"src":"935:9:13"},"id":12058,"nodeType":"InheritanceSpecifier","src":"935:9:13"},{"baseName":{"id":12059,"name":"StdInvariant","nodeType":"IdentifierPath","referencedDeclaration":6694,"src":"946:12:13"},"id":12060,"nodeType":"InheritanceSpecifier","src":"946:12:13"},{"baseName":{"id":12061,"name":"StdUtils","nodeType":"IdentifierPath","referencedDeclaration":12014,"src":"960:8:13"},"id":12062,"nodeType":"InheritanceSpecifier","src":"960:8:13"}],"canonicalName":"Test","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12066,12014,6694,6369,5576,3516,2734,65,62],"name":"Test","nameLocation":"891:4:13","scope":12067,"usedErrors":[]}],"license":"MIT"},"id":13}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":119,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"7","type":"t_bool"},{"astId":121,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":1,"slot":"7","type":"t_bool"},{"astId":3878,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":2,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":6687,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"12","type":"t_struct(StdStorage)8562_storage"},{"astId":7555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"19","type":"t_array(t_address)dyn_storage"},{"astId":7558,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"20","type":"t_array(t_address)dyn_storage"},{"astId":7561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":7564,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":7567,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"23","type":"t_array(t_string_storage)dyn_storage"},{"astId":7570,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"24","type":"t_array(t_string_storage)dyn_storage"},{"astId":7574,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"25","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7578,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"26","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7582,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"27","type":"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)7552_storage"},"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)7546_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FuzzInterface)7552_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":7548,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7551,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)7546_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":7542,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7545,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Test.sol:Test","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":14}
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":61,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)7427_storage"},{"astId":218,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":2719,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":2740,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)2735_storage)"},{"astId":2744,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":2748,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":2751,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":3509,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":5546,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)7427_storage"},{"astId":6414,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":6417,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":6420,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":6423,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":6426,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":6429,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":6433,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)6405_storage)dyn_storage"},{"astId":6437,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)6405_storage)dyn_storage"},{"astId":6441,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)6411_storage)dyn_storage"},{"astId":12026,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)6411_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)6411_storage"},"t_array(t_struct(FuzzSelector)6405_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)6405_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))"},"t_mapping(t_bytes32,t_struct(FindData)7402_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)7402_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)7402_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)2735_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)2735_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)2735_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":2728,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":2730,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":2732,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":2734,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)7402_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":7395,"contract":"lib/forge-std/src/Test.sol:Test","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":7397,"contract":"lib/forge-std/src/Test.sol:Test","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":7399,"contract":"lib/forge-std/src/Test.sol:Test","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":7401,"contract":"lib/forge-std/src/Test.sol:Test","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)6411_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":6407,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":6410,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)6405_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":6401,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":6404,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)7427_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":7411,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)7402_storage)))"},{"astId":7414,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":7416,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":7418,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":7420,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":7422,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":7424,"contract":"lib/forge-std/src/Test.sol:Test","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":7426,"contract":"lib/forge-std/src/Test.sol:Test","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Test.sol","id":12028,"exportedSymbols":{"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"Vm":[15818],"console":[23882],"console2":[32007],"safeconsole":[46732],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1014:12","nodes":[{"id":11977,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11978,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11980,"nodeType":"ImportDirective","src":"160:38:12","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":23883,"symbolAliases":[{"foreign":{"id":11979,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23882,"src":"168:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11982,"nodeType":"ImportDirective","src":"199:40:12","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":32008,"symbolAliases":[{"foreign":{"id":11981,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32007,"src":"207:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11984,"nodeType":"ImportDirective","src":"240:46:12","nodes":[],"absolutePath":"lib/forge-std/src/safeconsole.sol","file":"./safeconsole.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":46733,"symbolAliases":[{"foreign":{"id":11983,"name":"safeconsole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46732,"src":"248:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11986,"nodeType":"ImportDirective","src":"287:50:12","nodes":[],"absolutePath":"lib/forge-std/src/StdAssertions.sol","file":"./StdAssertions.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":2696,"symbolAliases":[{"foreign":{"id":11985,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"295:13:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11988,"nodeType":"ImportDirective","src":"338:42:12","nodes":[],"absolutePath":"lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":3478,"symbolAliases":[{"foreign":{"id":11987,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"346:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11990,"nodeType":"ImportDirective","src":"381:42:12","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6331,"symbolAliases":[{"foreign":{"id":11989,"name":"StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"389:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11992,"nodeType":"ImportDirective","src":"424:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdError.sol","file":"./StdError.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6397,"symbolAliases":[{"foreign":{"id":11991,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"432:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11994,"nodeType":"ImportDirective","src":"465:48:12","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"./StdInvariant.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6656,"symbolAliases":[{"foreign":{"id":11993,"name":"StdInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"473:12:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11996,"nodeType":"ImportDirective","src":"514:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":7248,"symbolAliases":[{"foreign":{"id":11995,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7247,"src":"522:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11998,"nodeType":"ImportDirective","src":"553:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":7390,"symbolAliases":[{"foreign":{"id":11997,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"561:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12001,"nodeType":"ImportDirective","src":"592:56:12","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":11999,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"600:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":12000,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"612:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12003,"nodeType":"ImportDirective","src":"649:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdStyle.sol","file":"./StdStyle.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":10598,"symbolAliases":[{"foreign":{"id":12002,"name":"StdStyle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10597,"src":"657:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12005,"nodeType":"ImportDirective","src":"690:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdToml.sol","file":"./StdToml.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":11190,"symbolAliases":[{"foreign":{"id":12004,"name":"stdToml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11189,"src":"698:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12007,"nodeType":"ImportDirective","src":"729:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":11976,"symbolAliases":[{"foreign":{"id":12006,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11975,"src":"737:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12009,"nodeType":"ImportDirective","src":"770:28:12","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":12008,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15818,"src":"778:2:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12011,"nodeType":"ImportDirective","src":"820:36:12","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":75,"symbolAliases":[{"foreign":{"id":12010,"name":"TestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"828:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12027,"nodeType":"ContractDefinition","src":"873:172:12","nodes":[{"id":12026,"nodeType":"VariableDeclaration","src":"1016:26:12","nodes":[],"constant":false,"functionSelector":"fa7626d4","mutability":"mutable","name":"IS_TEST","nameLocation":"1028:7:12","scope":12027,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12024,"name":"bool","nodeType":"ElementaryTypeName","src":"1016:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":12025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1038:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":12012,"name":"TestBase","nameLocations":["899:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":65,"src":"899:8:12"},"id":12013,"nodeType":"InheritanceSpecifier","src":"899:8:12"},{"baseName":{"id":12014,"name":"StdAssertions","nameLocations":["909:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"909:13:12"},"id":12015,"nodeType":"InheritanceSpecifier","src":"909:13:12"},{"baseName":{"id":12016,"name":"StdChains","nameLocations":["924:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":3477,"src":"924:9:12"},"id":12017,"nodeType":"InheritanceSpecifier","src":"924:9:12"},{"baseName":{"id":12018,"name":"StdCheats","nameLocations":["935:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":6330,"src":"935:9:12"},"id":12019,"nodeType":"InheritanceSpecifier","src":"935:9:12"},{"baseName":{"id":12020,"name":"StdInvariant","nameLocations":["946:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":6655,"src":"946:12:12"},"id":12021,"nodeType":"InheritanceSpecifier","src":"946:12:12"},{"baseName":{"id":12022,"name":"StdUtils","nameLocations":["960:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":11975,"src":"960:8:12"},"id":12023,"nodeType":"InheritanceSpecifier","src":"960:8:12"}],"canonicalName":"Test","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12027,11975,6655,6330,5537,3477,2695,65,62],"name":"Test","nameLocation":"891:4:12","scope":12028,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":12}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"contract ERC20"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_shell","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"peel","inputs":[{"name":"_layers","type":"tuple[]","internalType":"struct TransferOnion.Layer[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"shell","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"shell","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:204:-:0;;;1348:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:42;1806:7;:22;;;-1:-1:-1;;;;;1417:14:204;;;;;1441:16;;;;;;1467:14;633:1870;;14:138:350;-1:-1:-1;;;;;96:31:350;;86:42;;76:70;;142:1;139;132:12;76:70;14:138;:::o;157:475::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:38;428:5;396:38;:::i;:::-;503:2;488:18;;482:25;453:5;;-1:-1:-1;516:40:350;482:25;516:40;:::i;:::-;575:7;565:17;;;622:2;611:9;607:18;601:25;591:35;;157:475;;;;;:::o;:::-;633:1870:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:204:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:885;;;;;;:::i;:::-;;:::i;:::-;;1024:31;;;;;;;;2539:42:350;2527:55;;;2509:74;;2497:2;2482:18;1024:31:204;;;;;;;;923:28;;;;;1098:20;;;;;;;;;2986:25:350;;;2974:2;2959:18;1098:20:204;2840:177:350;1616:885:204;1744:1:42;2325:7;;:19;2317:63;;;;;;;3224:2:350;2317:63:42;;;3206:21:350;3263:2;3243:18;;;3236:30;3302:33;3282:18;;;3275:61;3353:18;;2317:63:42;;;;;;;;;1744:1;2455:7;:18;;;1704:5:204::1;::::0;1736:14;;1704:5;;1760:707:::1;1784:6;1780:1;:10;1760:707;;;1807:18;1828:7;1836:1;1828:10;;;;;;;;:::i;:::-;;;;;;;1807:31;;2003:9;1955:5;:15;;;1972:5;:12;;;1986:5;:11;;;1944:54;;;;;;;;;3803:42:350::0;3791:55;;;;3773:74;;3878:2;3863:18;;3856:34;;;;3921:2;3906:18;;3899:34;3761:2;3746:18;;3571:368;1944:54:204::1;;;;;;;;;;;;;1934:65;;;;;;:78;1909:183;;;::::0;::::1;::::0;;4146:2:350;1909:183:204::1;::::0;::::1;4128:21:350::0;4185:2;4165:18;;;4158:30;4224:34;4204:18;;;4197:62;4295:16;4275:18;;;4268:44;4329:19;;1909:183:204::1;3944:410:350::0;1909:183:204::1;2158:11;::::0;::::1;::::0;2313:15;;2330:12:::1;::::0;::::1;::::0;2158:11;;-1:-1:-1;2282:61:204::1;::::0;:22:::1;:5;:22;::::0;2305:6:::1;::::0;2282:22:::1;:61::i;:::-;-1:-1:-1::0;2439:3:204::1;;1760:707;;;-1:-1:-1::0;;2477:5:204::1;:17:::0;;;2628:7:42;:22;-1:-1:-1;1616:885:204:o;974:241:50:-;1139:68;;;4571:42:350;4640:15;;;1139:68:50;;;4622:34:350;4692:15;;4672:18;;;4665:43;4724:18;;;;4717:34;;;1139:68:50;;;;;;;;;;4534:18:350;;;;1139:68:50;;;;;;;;;;1162:27;1139:68;;;1112:96;;1132:5;;1112:19;:96::i;:::-;974:241;;;;:::o;3747:706::-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:50;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;5246:2:350;4351:85:50;;;5228:21:350;5285:2;5265:18;;;5258:30;5324:34;5304:18;;;5297:62;5395:12;5375:18;;;5368:40;5425:19;;4351:85:50;5044:406:350;4351:85:50;3817:636;3747:706;;:::o;3861:223:57:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;;3861:223;;;;;;:::o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;5657:2:350;5137:81:57;;;5639:21:350;5696:2;5676:18;;;5669:30;5735:34;5715:18;;;5708:62;5806:8;5786:18;;;5779:36;5832:19;;5137:81:57;5455:402:350;5137:81:57;1465:19;;;;5228:60;;;;;;;6064:2:350;5228:60:57;;;6046:21:350;6103:2;6083:18;;;6076:30;6142:31;6122:18;;;6115:59;6191:18;;5228:60:57;5862:353:350;5228:60:57;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;4948:499;-1:-1:-1;;;;;;;4948:499:57:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:57;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:253;275:2;269:9;317:4;305:17;;352:18;337:34;;373:22;;;334:62;331:88;;;399:18;;:::i;:::-;435:2;428:22;203:253;:::o;461:334::-;532:2;526:9;588:2;578:13;;593:66;574:86;562:99;;691:18;676:34;;712:22;;;673:62;670:88;;;738:18;;:::i;:::-;774:2;767:22;461:334;;-1:-1:-1;461:334:350:o;800:1558::-;909:6;940:2;983;971:9;962:7;958:23;954:32;951:52;;;999:1;996;989:12;951:52;1039:9;1026:23;1068:18;1109:2;1101:6;1098:14;1095:34;;;1125:1;1122;1115:12;1095:34;1163:6;1152:9;1148:22;1138:32;;1208:7;1201:4;1197:2;1193:13;1189:27;1179:55;;1230:1;1227;1220:12;1179:55;1266:2;1253:16;1288:2;1284;1281:10;1278:36;;;1294:18;;:::i;:::-;1334:36;1366:2;1361;1358:1;1354:10;1350:19;1334:36;:::i;:::-;1404:15;;;1435:12;;;;-1:-1:-1;1466:4:350;1505:11;;;1497:20;;1493:29;;;1534:19;;;1531:39;;;1566:1;1563;1556:12;1531:39;1590:11;;;;1610:718;1626:6;1621:3;1618:15;1610:718;;;1706:2;1700:3;1691:7;1687:17;1683:26;1680:116;;;1750:1;1779:2;1775;1768:14;1680:116;1822:22;;:::i;:::-;1885:3;1872:17;1937:42;1928:7;1924:56;1915:7;1912:69;1902:167;;2023:1;2052:2;2048;2041:14;1902:167;2082:22;;2153:12;;;2140:26;2124:14;;;2117:50;2190:2;2241:12;;;2228:26;2212:14;;;2205:50;2268:18;;1643:12;;;;2306;;;;1610:718;;;-1:-1:-1;2347:5:350;800:1558;-1:-1:-1;;;;;;;800:1558:350:o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;4762:277;4829:6;4882:2;4870:9;4861:7;4857:23;4853:32;4850:52;;;4898:1;4895;4888:12;4850:52;4930:9;4924:16;4983:5;4976:13;4969:21;4962:5;4959:32;4949:60;;5005:1;5002;4995:12;6220:258;6292:1;6302:113;6316:6;6313:1;6310:13;6302:113;;;6392:11;;;6386:18;6373:11;;;6366:39;6338:2;6331:10;6302:113;;;6433:6;6430:1;6427:13;6424:48;;;-1:-1:-1;;6468:1:350;6450:16;;6443:27;6220:258::o;6483:274::-;6612:3;6650:6;6644:13;6666:53;6712:6;6707:3;6700:4;6692:6;6688:17;6666:53;:::i;:::-;6735:16;;;;;6483:274;-1:-1:-1;;6483:274:350:o;6762:442::-;6911:2;6900:9;6893:21;6874:4;6943:6;6937:13;6986:6;6981:2;6970:9;6966:18;6959:34;7002:66;7061:6;7056:2;7045:9;7041:18;7036:2;7028:6;7024:15;7002:66;:::i;:::-;7120:2;7108:15;7125:66;7104:88;7089:104;;;;7195:2;7085:113;;6762:442;-1:-1:-1;;6762:442:350:o","linkReferences":{},"immutableReferences":{"102950":[{"start":188,"length":32},{"start":691,"length":32}],"102953":[{"start":107,"length":32},{"start":726,"length":32}]}},"methodIdentifiers":{"SENDER()":"6050f2f8","TOKEN()":"82bfefc8","peel((address,uint256,bytes32)[])":"43913491","shell()":"f11d2ff4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_shell\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SENDER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"shell\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferOnion.Layer[]\",\"name\":\"_layers\",\"type\":\"tuple[]\"}],\"name\":\"peel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shell\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_sender\":\"Address of the sender to distribute from.\",\"_shell\":\"Initial shell of the onion.\",\"_token\":\"Address of the token to distribute.\"}},\"peel((address,uint256,bytes32)[])\":{\"params\":{\"_layers\":\"Array of onion layers to peel.\"}}},\"title\":\"TransferOnion\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SENDER()\":{\"notice\":\"Address of the account to distribute tokens from.\"},\"TOKEN()\":{\"notice\":\"Address of the token to distribute.\"},\"constructor\":{\"notice\":\"Constructs a new TransferOnion.\"},\"peel((address,uint256,bytes32)[])\":{\"notice\":\"Peels layers from the onion and distributes tokens.\"},\"shell()\":{\"notice\":\"Current shell hash.\"}},\"notice\":\"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/TransferOnion.sol\":\"TransferOnion\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/periphery/TransferOnion.sol\":{\"keccak256\":\"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633\",\"dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"_token","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_shell","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"SENDER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"struct TransferOnion.Layer[]","name":"_layers","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"shell","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"peel"},{"inputs":[],"stateMutability":"view","type":"function","name":"shell","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"version":1},"userdoc":{"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/TransferOnion.sol":"TransferOnion"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/periphery/TransferOnion.sol":{"keccak256":"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325","urls":["bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633","dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":102956,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"shell","offset":0,"slot":"1","type":"t_bytes32"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"notice":"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"title":"TransferOnion"},"id":204}
{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"contract ERC20"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_shell","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"peel","inputs":[{"name":"_layers","type":"tuple[]","internalType":"struct TransferOnion.Layer[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"shell","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"shell","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:219:-:0;;;1348:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:44;1806:7;:22;;;-1:-1:-1;;;;;1417:14:219;;;;;1441:16;;;;;;1467:14;633:1870;;14:138:382;-1:-1:-1;;;;;96:31:382;;86:42;;76:70;;142:1;139;132:12;76:70;14:138;:::o;157:475::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:38;428:5;396:38;:::i;:::-;503:2;488:18;;482:25;453:5;;-1:-1:-1;516:40:382;482:25;516:40;:::i;:::-;575:7;565:17;;;622:2;611:9;607:18;601:25;591:35;;157:475;;;;;:::o;:::-;633:1870:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:219:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:885;;;;;;:::i;:::-;;:::i;:::-;;1024:31;;;;;;;;2539:42:382;2527:55;;;2509:74;;2497:2;2482:18;1024:31:219;;;;;;;;923:28;;;;;1098:20;;;;;;;;;2986:25:382;;;2974:2;2959:18;1098:20:219;2840:177:382;1616:885:219;1744:1:44;2325:7;;:19;2317:63;;;;;;;3224:2:382;2317:63:44;;;3206:21:382;3263:2;3243:18;;;3236:30;3302:33;3282:18;;;3275:61;3353:18;;2317:63:44;;;;;;;;;1744:1;2455:7;:18;;;1704:5:219::1;::::0;1736:14;;1704:5;;1760:707:::1;1784:6;1780:1;:10;1760:707;;;1807:18;1828:7;1836:1;1828:10;;;;;;;;:::i;:::-;;;;;;;1807:31;;2003:9;1955:5;:15;;;1972:5;:12;;;1986:5;:11;;;1944:54;;;;;;;;;3803:42:382::0;3791:55;;;;3773:74;;3878:2;3863:18;;3856:34;;;;3921:2;3906:18;;3899:34;3761:2;3746:18;;3571:368;1944:54:219::1;;;;;;;;;;;;;1934:65;;;;;;:78;1909:183;;;::::0;::::1;::::0;;4146:2:382;1909:183:219::1;::::0;::::1;4128:21:382::0;4185:2;4165:18;;;4158:30;4224:34;4204:18;;;4197:62;4295:16;4275:18;;;4268:44;4329:19;;1909:183:219::1;3944:410:382::0;1909:183:219::1;2158:11;::::0;::::1;::::0;2313:15;;2330:12:::1;::::0;::::1;::::0;2158:11;;-1:-1:-1;2282:61:219::1;::::0;:22:::1;:5;:22;::::0;2305:6:::1;::::0;2282:22:::1;:61::i;:::-;-1:-1:-1::0;2439:3:219::1;;1760:707;;;-1:-1:-1::0;;2477:5:219::1;:17:::0;;;2628:7:44;:22;-1:-1:-1;1616:885:219:o;974:241:52:-;1139:68;;;4571:42:382;4640:15;;;1139:68:52;;;4622:34:382;4692:15;;4672:18;;;4665:43;4724:18;;;;4717:34;;;1139:68:52;;;;;;;;;;4534:18:382;;;;1139:68:52;;;;;;;;;;1162:27;1139:68;;;1112:96;;1132:5;;1112:19;:96::i;:::-;974:241;;;;:::o;3747:706::-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:52;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;5246:2:382;4351:85:52;;;5228:21:382;5285:2;5265:18;;;5258:30;5324:34;5304:18;;;5297:62;5395:12;5375:18;;;5368:40;5425:19;;4351:85:52;5044:406:382;4351:85:52;3817:636;3747:706;;:::o;3861:223:59:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;;3861:223;;;;;;:::o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;5657:2:382;5137:81:59;;;5639:21:382;5696:2;5676:18;;;5669:30;5735:34;5715:18;;;5708:62;5806:8;5786:18;;;5779:36;5832:19;;5137:81:59;5455:402:382;5137:81:59;1465:19;;;;5228:60;;;;;;;6064:2:382;5228:60:59;;;6046:21:382;6103:2;6083:18;;;6076:30;6142:31;6122:18;;;6115:59;6191:18;;5228:60:59;5862:353:382;5228:60:59;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;4948:499;-1:-1:-1;;;;;;;4948:499:59:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:59;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;14:184:382:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:253;275:2;269:9;317:4;305:17;;352:18;337:34;;373:22;;;334:62;331:88;;;399:18;;:::i;:::-;435:2;428:22;203:253;:::o;461:334::-;532:2;526:9;588:2;578:13;;593:66;574:86;562:99;;691:18;676:34;;712:22;;;673:62;670:88;;;738:18;;:::i;:::-;774:2;767:22;461:334;;-1:-1:-1;461:334:382:o;800:1558::-;909:6;940:2;983;971:9;962:7;958:23;954:32;951:52;;;999:1;996;989:12;951:52;1039:9;1026:23;1068:18;1109:2;1101:6;1098:14;1095:34;;;1125:1;1122;1115:12;1095:34;1163:6;1152:9;1148:22;1138:32;;1208:7;1201:4;1197:2;1193:13;1189:27;1179:55;;1230:1;1227;1220:12;1179:55;1266:2;1253:16;1288:2;1284;1281:10;1278:36;;;1294:18;;:::i;:::-;1334:36;1366:2;1361;1358:1;1354:10;1350:19;1334:36;:::i;:::-;1404:15;;;1435:12;;;;-1:-1:-1;1466:4:382;1505:11;;;1497:20;;1493:29;;;1534:19;;;1531:39;;;1566:1;1563;1556:12;1531:39;1590:11;;;;1610:718;1626:6;1621:3;1618:15;1610:718;;;1706:2;1700:3;1691:7;1687:17;1683:26;1680:116;;;1750:1;1779:2;1775;1768:14;1680:116;1822:22;;:::i;:::-;1885:3;1872:17;1937:42;1928:7;1924:56;1915:7;1912:69;1902:167;;2023:1;2052:2;2048;2041:14;1902:167;2082:22;;2153:12;;;2140:26;2124:14;;;2117:50;2190:2;2241:12;;;2228:26;2212:14;;;2205:50;2268:18;;1643:12;;;;2306;;;;1610:718;;;-1:-1:-1;2347:5:382;800:1558;-1:-1:-1;;;;;;;800:1558:382:o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;4762:277;4829:6;4882:2;4870:9;4861:7;4857:23;4853:32;4850:52;;;4898:1;4895;4888:12;4850:52;4930:9;4924:16;4983:5;4976:13;4969:21;4962:5;4959:32;4949:60;;5005:1;5002;4995:12;6220:258;6292:1;6302:113;6316:6;6313:1;6310:13;6302:113;;;6392:11;;;6386:18;6373:11;;;6366:39;6338:2;6331:10;6302:113;;;6433:6;6430:1;6427:13;6424:48;;;-1:-1:-1;;6468:1:382;6450:16;;6443:27;6220:258::o;6483:274::-;6612:3;6650:6;6644:13;6666:53;6712:6;6707:3;6700:4;6692:6;6688:17;6666:53;:::i;:::-;6735:16;;;;;6483:274;-1:-1:-1;;6483:274:382:o;6762:442::-;6911:2;6900:9;6893:21;6874:4;6943:6;6937:13;6986:6;6981:2;6970:9;6966:18;6959:34;7002:66;7061:6;7056:2;7045:9;7041:18;7036:2;7028:6;7024:15;7002:66;:::i;:::-;7120:2;7108:15;7125:66;7104:88;7089:104;;;;7195:2;7085:113;;6762:442;-1:-1:-1;;6762:442:382:o","linkReferences":{},"immutableReferences":{"110373":[{"start":188,"length":32},{"start":691,"length":32}],"110376":[{"start":107,"length":32},{"start":726,"length":32}]}},"methodIdentifiers":{"SENDER()":"6050f2f8","TOKEN()":"82bfefc8","peel((address,uint256,bytes32)[])":"43913491","shell()":"f11d2ff4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_shell\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SENDER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"shell\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferOnion.Layer[]\",\"name\":\"_layers\",\"type\":\"tuple[]\"}],\"name\":\"peel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shell\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_sender\":\"Address of the sender to distribute from.\",\"_shell\":\"Initial shell of the onion.\",\"_token\":\"Address of the token to distribute.\"}},\"peel((address,uint256,bytes32)[])\":{\"params\":{\"_layers\":\"Array of onion layers to peel.\"}}},\"title\":\"TransferOnion\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SENDER()\":{\"notice\":\"Address of the account to distribute tokens from.\"},\"TOKEN()\":{\"notice\":\"Address of the token to distribute.\"},\"constructor\":{\"notice\":\"Constructs a new TransferOnion.\"},\"peel((address,uint256,bytes32)[])\":{\"notice\":\"Peels layers from the onion and distributes tokens.\"},\"shell()\":{\"notice\":\"Current shell hash.\"}},\"notice\":\"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/TransferOnion.sol\":\"TransferOnion\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/periphery/TransferOnion.sol\":{\"keccak256\":\"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633\",\"dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"_token","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_shell","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"SENDER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"struct TransferOnion.Layer[]","name":"_layers","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"shell","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"peel"},{"inputs":[],"stateMutability":"view","type":"function","name":"shell","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"version":1},"userdoc":{"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/TransferOnion.sol":"TransferOnion"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/periphery/TransferOnion.sol":{"keccak256":"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325","urls":["bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633","dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49832,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":110379,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"shell","offset":0,"slot":"1","type":"t_bytes32"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"notice":"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"title":"TransferOnion"},"ast":{"absolutePath":"src/periphery/TransferOnion.sol","id":110481,"exportedSymbols":{"ERC20":[50447],"ReentrancyGuard":[49861],"SafeERC20":[51720],"TransferOnion":[110480]},"nodeType":"SourceUnit","src":"32:2472:219","nodes":[{"id":110349,"nodeType":"PragmaDirective","src":"32:23:219","nodes":[],"literals":["solidity","0.8",".15"]},{"id":110351,"nodeType":"ImportDirective","src":"57:87:219","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":110481,"sourceUnit":49862,"symbolAliases":[{"foreign":{"id":110350,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49861,"src":"66:15:219","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110353,"nodeType":"ImportDirective","src":"145:70:219","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":110481,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":110352,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"154:5:219","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110355,"nodeType":"ImportDirective","src":"216:84:219","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":110481,"sourceUnit":51721,"symbolAliases":[{"foreign":{"id":110354,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"225:9:219","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110480,"nodeType":"ContractDefinition","src":"633:1870:219","nodes":[{"id":110362,"nodeType":"UsingForDirective","src":"681:26:219","nodes":[],"global":false,"libraryName":{"id":110359,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":51720,"src":"687:9:219"},"typeName":{"id":110361,"nodeType":"UserDefinedTypeName","pathNode":{"id":110360,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"701:5:219"},"referencedDeclaration":50447,"src":"701:5:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}}},{"id":110369,"nodeType":"StructDefinition","src":"771:94:219","nodes":[],"canonicalName":"TransferOnion.Layer","members":[{"constant":false,"id":110364,"mutability":"mutable","name":"recipient","nameLocation":"802:9:219","nodeType":"VariableDeclaration","scope":110369,"src":"794:17:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110363,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:219","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110366,"mutability":"mutable","name":"amount","nameLocation":"829:6:219","nodeType":"VariableDeclaration","scope":110369,"src":"821:14:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110365,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":110368,"mutability":"mutable","name":"shell","nameLocation":"853:5:219","nodeType":"VariableDeclaration","scope":110369,"src":"845:13:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":110367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"845:7:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Layer","nameLocation":"778:5:219","scope":110480,"visibility":"public"},{"id":110373,"nodeType":"VariableDeclaration","src":"923:28:219","nodes":[],"constant":false,"documentation":{"id":110370,"nodeType":"StructuredDocumentation","src":"871:47:219","text":"@notice Address of the token to distribute."},"functionSelector":"82bfefc8","mutability":"immutable","name":"TOKEN","nameLocation":"946:5:219","scope":110480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"},"typeName":{"id":110372,"nodeType":"UserDefinedTypeName","pathNode":{"id":110371,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"923:5:219"},"referencedDeclaration":50447,"src":"923:5:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"visibility":"public"},{"id":110376,"nodeType":"VariableDeclaration","src":"1024:31:219","nodes":[],"constant":false,"documentation":{"id":110374,"nodeType":"StructuredDocumentation","src":"958:61:219","text":"@notice Address of the account to distribute tokens from."},"functionSelector":"6050f2f8","mutability":"immutable","name":"SENDER","nameLocation":"1049:6:219","scope":110480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110375,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:219","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":110379,"nodeType":"VariableDeclaration","src":"1098:20:219","nodes":[],"constant":false,"documentation":{"id":110377,"nodeType":"StructuredDocumentation","src":"1062:31:219","text":"@notice Current shell hash."},"functionSelector":"f11d2ff4","mutability":"mutable","name":"shell","nameLocation":"1113:5:219","scope":110480,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":110378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1098:7:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":110403,"nodeType":"FunctionDefinition","src":"1348:140:219","nodes":[],"body":{"id":110402,"nodeType":"Block","src":"1407:81:219","nodes":[],"statements":[{"expression":{"id":110392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110390,"name":"TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110373,"src":"1417:5:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110391,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110383,"src":"1425:6:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"src":"1417:14:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"id":110393,"nodeType":"ExpressionStatement","src":"1417:14:219"},{"expression":{"id":110396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110394,"name":"SENDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110376,"src":"1441:6:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110395,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110385,"src":"1450:7:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1441:16:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":110397,"nodeType":"ExpressionStatement","src":"1441:16:219"},{"expression":{"id":110400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110398,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110379,"src":"1467:5:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110399,"name":"_shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110387,"src":"1475:6:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1467:14:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":110401,"nodeType":"ExpressionStatement","src":"1467:14:219"}]},"documentation":{"id":110380,"nodeType":"StructuredDocumentation","src":"1125:218:219","text":"@notice Constructs a new TransferOnion.\n @param _token Address of the token to distribute.\n @param _sender Address of the sender to distribute from.\n @param _shell Initial shell of the onion."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":110388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110383,"mutability":"mutable","name":"_token","nameLocation":"1366:6:219","nodeType":"VariableDeclaration","scope":110403,"src":"1360:12:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"},"typeName":{"id":110382,"nodeType":"UserDefinedTypeName","pathNode":{"id":110381,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"1360:5:219"},"referencedDeclaration":50447,"src":"1360:5:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":110385,"mutability":"mutable","name":"_sender","nameLocation":"1382:7:219","nodeType":"VariableDeclaration","scope":110403,"src":"1374:15:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110384,"name":"address","nodeType":"ElementaryTypeName","src":"1374:7:219","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110387,"mutability":"mutable","name":"_shell","nameLocation":"1399:6:219","nodeType":"VariableDeclaration","scope":110403,"src":"1391:14:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":110386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1359:47:219"},"returnParameters":{"id":110389,"nodeType":"ParameterList","parameters":[],"src":"1407:0:219"},"scope":110480,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":110479,"nodeType":"FunctionDefinition","src":"1616:885:219","nodes":[],"body":{"id":110478,"nodeType":"Block","src":"1674:827:219","nodes":[],"statements":[{"assignments":[110414],"declarations":[{"constant":false,"id":110414,"mutability":"mutable","name":"tempShell","nameLocation":"1692:9:219","nodeType":"VariableDeclaration","scope":110478,"src":"1684:17:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":110413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1684:7:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":110416,"initialValue":{"id":110415,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110379,"src":"1704:5:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1684:25:219"},{"assignments":[110418],"declarations":[{"constant":false,"id":110418,"mutability":"mutable","name":"length","nameLocation":"1727:6:219","nodeType":"VariableDeclaration","scope":110478,"src":"1719:14:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110417,"name":"uint256","nodeType":"ElementaryTypeName","src":"1719:7:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":110421,"initialValue":{"expression":{"id":110419,"name":"_layers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110408,"src":"1736:7:219","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$110369_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer memory[] memory"}},"id":110420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1736:14:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1719:31:219"},{"body":{"id":110472,"nodeType":"Block","src":"1793:674:219","statements":[{"assignments":[110431],"declarations":[{"constant":false,"id":110431,"mutability":"mutable","name":"layer","nameLocation":"1820:5:219","nodeType":"VariableDeclaration","scope":110472,"src":"1807:18:219","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer"},"typeName":{"id":110430,"nodeType":"UserDefinedTypeName","pathNode":{"id":110429,"name":"Layer","nodeType":"IdentifierPath","referencedDeclaration":110369,"src":"1807:5:219"},"referencedDeclaration":110369,"src":"1807:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_storage_ptr","typeString":"struct TransferOnion.Layer"}},"visibility":"internal"}],"id":110435,"initialValue":{"baseExpression":{"id":110432,"name":"_layers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110408,"src":"1828:7:219","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$110369_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer memory[] memory"}},"id":110434,"indexExpression":{"id":110433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110423,"src":"1836:1:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1828:10:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"nodeType":"VariableDeclarationStatement","src":"1807:31:219"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":110449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":110440,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"1955:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":110364,"src":"1955:15:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":110442,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"1972:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":110366,"src":"1972:12:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":110444,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"1986:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"shell","nodeType":"MemberAccess","referencedDeclaration":110368,"src":"1986:11:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":110438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1944:3:219","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":110439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1944:10:219","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":110446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1944:54:219","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":110437,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1934:9:219","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":110447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1934:65:219","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":110448,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110414,"src":"2003:9:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1934:78:219","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e6720696e206d79207377616d703f","id":110450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2030:48:219","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc770c4319fc2b524adbcd4dd26d8e72c58657124c679b05539d773ad29dd0bc","typeString":"literal_string \"TransferOnion: what are you doing in my swamp?\""},"value":"TransferOnion: what are you doing in my swamp?"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc770c4319fc2b524adbcd4dd26d8e72c58657124c679b05539d773ad29dd0bc","typeString":"literal_string \"TransferOnion: what are you doing in my swamp?\""}],"id":110436,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1909:7:219","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":110451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1909:183:219","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110452,"nodeType":"ExpressionStatement","src":"1909:183:219"},{"expression":{"id":110456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110453,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110414,"src":"2146:9:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":110454,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"2158:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"shell","nodeType":"MemberAccess","referencedDeclaration":110368,"src":"2158:11:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2146:23:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":110457,"nodeType":"ExpressionStatement","src":"2146:23:219"},{"expression":{"arguments":[{"id":110461,"name":"SENDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110376,"src":"2305:6:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":110462,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"2313:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":110364,"src":"2313:15:219","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":110464,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110431,"src":"2330:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":110465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":110366,"src":"2330:12:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":110458,"name":"TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110373,"src":"2282:5:219","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$50447","typeString":"contract ERC20"}},"id":110460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":51497,"src":"2282:22:219","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$50525_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$50525_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":110466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2282:61:219","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110467,"nodeType":"ExpressionStatement","src":"2282:61:219"},{"id":110471,"nodeType":"UncheckedBlock","src":"2411:46:219","statements":[{"expression":{"id":110469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2439:3:219","subExpression":{"id":110468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110423,"src":"2441:1:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":110470,"nodeType":"ExpressionStatement","src":"2439:3:219"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":110428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110423,"src":"1780:1:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":110427,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110418,"src":"1784:6:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1780:10:219","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":110473,"initializationExpression":{"assignments":[110423],"declarations":[{"constant":false,"id":110423,"mutability":"mutable","name":"i","nameLocation":"1773:1:219","nodeType":"VariableDeclaration","scope":110473,"src":"1765:9:219","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110422,"name":"uint256","nodeType":"ElementaryTypeName","src":"1765:7:219","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":110425,"initialValue":{"hexValue":"30","id":110424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:219","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1765:13:219"},"nodeType":"ForStatement","src":"1760:707:219"},{"expression":{"id":110476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110474,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110379,"src":"2477:5:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110475,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110414,"src":"2485:9:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2477:17:219","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":110477,"nodeType":"ExpressionStatement","src":"2477:17:219"}]},"documentation":{"id":110404,"nodeType":"StructuredDocumentation","src":"1494:117:219","text":"@notice Peels layers from the onion and distributes tokens.\n @param _layers Array of onion layers to peel."},"functionSelector":"43913491","implemented":true,"kind":"function","modifiers":[{"id":110411,"kind":"modifierInvocation","modifierName":{"id":110410,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":49860,"src":"1661:12:219"},"nodeType":"ModifierInvocation","src":"1661:12:219"}],"name":"peel","nameLocation":"1625:4:219","parameters":{"id":110409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110408,"mutability":"mutable","name":"_layers","nameLocation":"1645:7:219","nodeType":"VariableDeclaration","scope":110479,"src":"1630:22:219","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$110369_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer[]"},"typeName":{"baseType":{"id":110406,"nodeType":"UserDefinedTypeName","pathNode":{"id":110405,"name":"Layer","nodeType":"IdentifierPath","referencedDeclaration":110369,"src":"1630:5:219"},"referencedDeclaration":110369,"src":"1630:5:219","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$110369_storage_ptr","typeString":"struct TransferOnion.Layer"}},"id":110407,"nodeType":"ArrayTypeName","src":"1630:7:219","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$110369_storage_$dyn_storage_ptr","typeString":"struct TransferOnion.Layer[]"}},"visibility":"internal"}],"src":"1629:24:219"},"returnParameters":{"id":110412,"nodeType":"ParameterList","parameters":[],"src":"1674:0:219"},"scope":110480,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":110357,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":49861,"src":"659:15:219"},"id":110358,"nodeType":"InheritanceSpecifier","src":"659:15:219"}],"canonicalName":"TransferOnion","contractDependencies":[],"contractKind":"contract","documentation":{"id":110356,"nodeType":"StructuredDocumentation","src":"302:331:219","text":"@title TransferOnion\n @notice TransferOnion is a hash onion for distributing tokens. The shell commits\n to an ordered list of the token transfers and can be permissionlessly\n unwrapped in order. The SENDER must `approve` this contract as\n `transferFrom` is used to move the token balances."},"fullyImplemented":true,"linearizedBaseContracts":[110480,49861],"name":"TransferOnion","nameLocation":"642:13:219","scope":110481,"usedErrors":[]}],"license":"MIT"},"id":219}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:583:118:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:583:118;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:583:118:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Types.sol\":{\"keccak256\":\"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4\",\"dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Types.sol":{"keccak256":"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773","urls":["bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4","dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":118}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:211:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;155:3104:211;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:211:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Types\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains various types used throughout the Optimism contract system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains various types used throughout the Optimism contract system."},"devdoc":{"version":1,"kind":"dev","title":"Types"},"ast":{"absolutePath":"src/libraries/Types.sol","id":108362,"exportedSymbols":{"Types":[108361]},"nodeType":"SourceUnit","src":"32:3228:211","nodes":[{"id":108311,"nodeType":"PragmaDirective","src":"32:23:211","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":108361,"nodeType":"ContractDefinition","src":"155:3104:211","nodes":[{"id":108319,"nodeType":"StructDefinition","src":"699:115:211","nodes":[],"canonicalName":"Types.OutputProposal","members":[{"constant":false,"id":108314,"mutability":"mutable","name":"outputRoot","nameLocation":"739:10:211","nodeType":"VariableDeclaration","scope":108319,"src":"731:18:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"731:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":108316,"mutability":"mutable","name":"timestamp","nameLocation":"767:9:211","nodeType":"VariableDeclaration","scope":108319,"src":"759:17:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":108315,"name":"uint128","nodeType":"ElementaryTypeName","src":"759:7:211","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":108318,"mutability":"mutable","name":"l2BlockNumber","nameLocation":"794:13:211","nodeType":"VariableDeclaration","scope":108319,"src":"786:21:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":108317,"name":"uint128","nodeType":"ElementaryTypeName","src":"786:7:211","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"OutputProposal","nameLocation":"706:14:211","scope":108361,"visibility":"public"},{"id":108328,"nodeType":"StructDefinition","src":"1348:157:211","nodes":[],"canonicalName":"Types.OutputRootProof","members":[{"constant":false,"id":108321,"mutability":"mutable","name":"version","nameLocation":"1389:7:211","nodeType":"VariableDeclaration","scope":108328,"src":"1381:15:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1381:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":108323,"mutability":"mutable","name":"stateRoot","nameLocation":"1414:9:211","nodeType":"VariableDeclaration","scope":108328,"src":"1406:17:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":108325,"mutability":"mutable","name":"messagePasserStorageRoot","nameLocation":"1441:24:211","nodeType":"VariableDeclaration","scope":108328,"src":"1433:32:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":108327,"mutability":"mutable","name":"latestBlockhash","nameLocation":"1483:15:211","nodeType":"VariableDeclaration","scope":108328,"src":"1475:23:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OutputRootProof","nameLocation":"1355:15:211","scope":108361,"visibility":"public"},{"id":108347,"nodeType":"StructDefinition","src":"2368:249:211","nodes":[],"canonicalName":"Types.UserDepositTransaction","members":[{"constant":false,"id":108330,"mutability":"mutable","name":"from","nameLocation":"2416:4:211","nodeType":"VariableDeclaration","scope":108347,"src":"2408:12:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108329,"name":"address","nodeType":"ElementaryTypeName","src":"2408:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108332,"mutability":"mutable","name":"to","nameLocation":"2438:2:211","nodeType":"VariableDeclaration","scope":108347,"src":"2430:10:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108331,"name":"address","nodeType":"ElementaryTypeName","src":"2430:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108334,"mutability":"mutable","name":"isCreation","nameLocation":"2455:10:211","nodeType":"VariableDeclaration","scope":108347,"src":"2450:15:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108333,"name":"bool","nodeType":"ElementaryTypeName","src":"2450:4:211","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":108336,"mutability":"mutable","name":"value","nameLocation":"2483:5:211","nodeType":"VariableDeclaration","scope":108347,"src":"2475:13:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2475:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108338,"mutability":"mutable","name":"mint","nameLocation":"2506:4:211","nodeType":"VariableDeclaration","scope":108347,"src":"2498:12:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108337,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108340,"mutability":"mutable","name":"gasLimit","nameLocation":"2527:8:211","nodeType":"VariableDeclaration","scope":108347,"src":"2520:15:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":108339,"name":"uint64","nodeType":"ElementaryTypeName","src":"2520:6:211","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":108342,"mutability":"mutable","name":"data","nameLocation":"2551:4:211","nodeType":"VariableDeclaration","scope":108347,"src":"2545:10:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":108341,"name":"bytes","nodeType":"ElementaryTypeName","src":"2545:5:211","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":108344,"mutability":"mutable","name":"l1BlockHash","nameLocation":"2573:11:211","nodeType":"VariableDeclaration","scope":108347,"src":"2565:19:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":108343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2565:7:211","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":108346,"mutability":"mutable","name":"logIndex","nameLocation":"2602:8:211","nodeType":"VariableDeclaration","scope":108347,"src":"2594:16:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108345,"name":"uint256","nodeType":"ElementaryTypeName","src":"2594:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"UserDepositTransaction","nameLocation":"2375:22:211","scope":108361,"visibility":"public"},{"id":108360,"nodeType":"StructDefinition","src":"3081:176:211","nodes":[],"canonicalName":"Types.WithdrawalTransaction","members":[{"constant":false,"id":108349,"mutability":"mutable","name":"nonce","nameLocation":"3128:5:211","nodeType":"VariableDeclaration","scope":108360,"src":"3120:13:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108348,"name":"uint256","nodeType":"ElementaryTypeName","src":"3120:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108351,"mutability":"mutable","name":"sender","nameLocation":"3151:6:211","nodeType":"VariableDeclaration","scope":108360,"src":"3143:14:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108350,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108353,"mutability":"mutable","name":"target","nameLocation":"3175:6:211","nodeType":"VariableDeclaration","scope":108360,"src":"3167:14:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108352,"name":"address","nodeType":"ElementaryTypeName","src":"3167:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108355,"mutability":"mutable","name":"value","nameLocation":"3199:5:211","nodeType":"VariableDeclaration","scope":108360,"src":"3191:13:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108354,"name":"uint256","nodeType":"ElementaryTypeName","src":"3191:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108357,"mutability":"mutable","name":"gasLimit","nameLocation":"3222:8:211","nodeType":"VariableDeclaration","scope":108360,"src":"3214:16:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":108359,"mutability":"mutable","name":"data","nameLocation":"3246:4:211","nodeType":"VariableDeclaration","scope":108360,"src":"3240:10:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":108358,"name":"bytes","nodeType":"ElementaryTypeName","src":"3240:5:211","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"WithdrawalTransaction","nameLocation":"3088:21:211","scope":108361,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Types","contractDependencies":[],"contractKind":"library","documentation":{"id":108312,"nodeType":"StructuredDocumentation","src":"57:98:211","text":"@title Types\n @notice Contains various types used throughout the Optimism contract system."},"fullyImplemented":true,"linearizedBaseContracts":[108361],"name":"Types","nameLocation":"163:5:211","scope":108362,"usedErrors":[]}],"license":"MIT"},"id":211}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"57:583:67:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:583:67;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000819000a","sourceMap":"57:583:67:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Types.sol\":\"Types\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Types.sol\":{\"keccak256\":\"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4\",\"dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Types.sol":"Types"},"evmVersion":"paris","libraries":{}},"sources":{"scripts/Types.sol":{"keccak256":"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773","urls":["bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4","dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":67}
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"155:3104:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;155:3104:31;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"155:3104:31:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Types\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains various types used throughout the Optimism contract system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Types.sol\":\"Types\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Types.sol":"Types"},"evmVersion":"cancun","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains various types used throughout the Optimism contract system."},"devdoc":{"version":1,"kind":"dev","title":"Types"},"ast":{"absolutePath":"src/libraries/Types.sol","id":48698,"exportedSymbols":{"Types":[48697]},"nodeType":"SourceUnit","src":"32:3228:31","nodes":[{"id":48643,"nodeType":"PragmaDirective","src":"32:23:31","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48697,"nodeType":"ContractDefinition","src":"155:3104:31","nodes":[{"id":48652,"nodeType":"StructDefinition","src":"699:115:31","nodes":[],"canonicalName":"Types.OutputProposal","documentation":{"id":48645,"nodeType":"StructuredDocumentation","src":"175:519:31","text":"@notice OutputProposal represents a commitment to the L2 state. The timestamp is the L1\n timestamp that the output root is posted. This timestamp is used to verify that the\n finalization period has passed since the output root was submitted.\n @custom:field outputRoot Hash of the L2 output.\n @custom:field timestamp Timestamp of the L1 block that the output root was submitted in.\n @custom:field l2BlockNumber L2 block number that the output corresponds to."},"members":[{"constant":false,"id":48647,"mutability":"mutable","name":"outputRoot","nameLocation":"739:10:31","nodeType":"VariableDeclaration","scope":48652,"src":"731:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"731:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48649,"mutability":"mutable","name":"timestamp","nameLocation":"767:9:31","nodeType":"VariableDeclaration","scope":48652,"src":"759:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":48648,"name":"uint128","nodeType":"ElementaryTypeName","src":"759:7:31","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":48651,"mutability":"mutable","name":"l2BlockNumber","nameLocation":"794:13:31","nodeType":"VariableDeclaration","scope":48652,"src":"786:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":48650,"name":"uint128","nodeType":"ElementaryTypeName","src":"786:7:31","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"OutputProposal","nameLocation":"706:14:31","scope":48697,"visibility":"public"},{"id":48662,"nodeType":"StructDefinition","src":"1348:157:31","nodes":[],"canonicalName":"Types.OutputRootProof","documentation":{"id":48653,"nodeType":"StructuredDocumentation","src":"820:523:31","text":"@notice Struct representing the elements that are hashed together to generate an output root\n which itself represents a snapshot of the L2 state.\n @custom:field version Version of the output root.\n @custom:field stateRoot Root of the state trie at the block of this output.\n @custom:field messagePasserStorageRoot Root of the message passer storage trie.\n @custom:field latestBlockhash Hash of the block this output was generated from."},"members":[{"constant":false,"id":48655,"mutability":"mutable","name":"version","nameLocation":"1389:7:31","nodeType":"VariableDeclaration","scope":48662,"src":"1381:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1381:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48657,"mutability":"mutable","name":"stateRoot","nameLocation":"1414:9:31","nodeType":"VariableDeclaration","scope":48662,"src":"1406:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48659,"mutability":"mutable","name":"messagePasserStorageRoot","nameLocation":"1441:24:31","nodeType":"VariableDeclaration","scope":48662,"src":"1433:32:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48661,"mutability":"mutable","name":"latestBlockhash","nameLocation":"1483:15:31","nodeType":"VariableDeclaration","scope":48662,"src":"1475:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OutputRootProof","nameLocation":"1355:15:31","scope":48697,"visibility":"public"},{"id":48682,"nodeType":"StructDefinition","src":"2368:249:31","nodes":[],"canonicalName":"Types.UserDepositTransaction","documentation":{"id":48663,"nodeType":"StructuredDocumentation","src":"1511:852:31","text":"@notice Struct representing a deposit transaction (L1 => L2 transaction) created by an end\n user (as opposed to a system deposit transaction generated by the system).\n @custom:field from Address of the sender of the transaction.\n @custom:field to Address of the recipient of the transaction.\n @custom:field isCreation True if the transaction is a contract creation.\n @custom:field value Value to send to the recipient.\n @custom:field mint Amount of ETH to mint.\n @custom:field gasLimit Gas limit of the transaction.\n @custom:field data Data of the transaction.\n @custom:field l1BlockHash Hash of the block the transaction was submitted in.\n @custom:field logIndex Index of the log in the block the transaction was submitted in."},"members":[{"constant":false,"id":48665,"mutability":"mutable","name":"from","nameLocation":"2416:4:31","nodeType":"VariableDeclaration","scope":48682,"src":"2408:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48664,"name":"address","nodeType":"ElementaryTypeName","src":"2408:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48667,"mutability":"mutable","name":"to","nameLocation":"2438:2:31","nodeType":"VariableDeclaration","scope":48682,"src":"2430:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48666,"name":"address","nodeType":"ElementaryTypeName","src":"2430:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48669,"mutability":"mutable","name":"isCreation","nameLocation":"2455:10:31","nodeType":"VariableDeclaration","scope":48682,"src":"2450:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48668,"name":"bool","nodeType":"ElementaryTypeName","src":"2450:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48671,"mutability":"mutable","name":"value","nameLocation":"2483:5:31","nodeType":"VariableDeclaration","scope":48682,"src":"2475:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48670,"name":"uint256","nodeType":"ElementaryTypeName","src":"2475:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48673,"mutability":"mutable","name":"mint","nameLocation":"2506:4:31","nodeType":"VariableDeclaration","scope":48682,"src":"2498:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48672,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48675,"mutability":"mutable","name":"gasLimit","nameLocation":"2527:8:31","nodeType":"VariableDeclaration","scope":48682,"src":"2520:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48674,"name":"uint64","nodeType":"ElementaryTypeName","src":"2520:6:31","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48677,"mutability":"mutable","name":"data","nameLocation":"2551:4:31","nodeType":"VariableDeclaration","scope":48682,"src":"2545:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48676,"name":"bytes","nodeType":"ElementaryTypeName","src":"2545:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48679,"mutability":"mutable","name":"l1BlockHash","nameLocation":"2573:11:31","nodeType":"VariableDeclaration","scope":48682,"src":"2565:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2565:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48681,"mutability":"mutable","name":"logIndex","nameLocation":"2602:8:31","nodeType":"VariableDeclaration","scope":48682,"src":"2594:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48680,"name":"uint256","nodeType":"ElementaryTypeName","src":"2594:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"UserDepositTransaction","nameLocation":"2375:22:31","scope":48697,"visibility":"public"},{"id":48696,"nodeType":"StructDefinition","src":"3081:176:31","nodes":[],"canonicalName":"Types.WithdrawalTransaction","documentation":{"id":48683,"nodeType":"StructuredDocumentation","src":"2623:453:31","text":"@notice Struct representing a withdrawal transaction.\n @custom:field nonce Nonce of the withdrawal transaction\n @custom:field sender Address of the sender of the transaction.\n @custom:field target Address of the recipient of the transaction.\n @custom:field value Value to send to the recipient.\n @custom:field gasLimit Gas limit of the transaction.\n @custom:field data Data of the transaction."},"members":[{"constant":false,"id":48685,"mutability":"mutable","name":"nonce","nameLocation":"3128:5:31","nodeType":"VariableDeclaration","scope":48696,"src":"3120:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48684,"name":"uint256","nodeType":"ElementaryTypeName","src":"3120:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48687,"mutability":"mutable","name":"sender","nameLocation":"3151:6:31","nodeType":"VariableDeclaration","scope":48696,"src":"3143:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48686,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48689,"mutability":"mutable","name":"target","nameLocation":"3175:6:31","nodeType":"VariableDeclaration","scope":48696,"src":"3167:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48688,"name":"address","nodeType":"ElementaryTypeName","src":"3167:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48691,"mutability":"mutable","name":"value","nameLocation":"3199:5:31","nodeType":"VariableDeclaration","scope":48696,"src":"3191:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48690,"name":"uint256","nodeType":"ElementaryTypeName","src":"3191:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48693,"mutability":"mutable","name":"gasLimit","nameLocation":"3222:8:31","nodeType":"VariableDeclaration","scope":48696,"src":"3214:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48692,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48695,"mutability":"mutable","name":"data","nameLocation":"3246:4:31","nodeType":"VariableDeclaration","scope":48696,"src":"3240:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48694,"name":"bytes","nodeType":"ElementaryTypeName","src":"3240:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"WithdrawalTransaction","nameLocation":"3088:21:31","scope":48697,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Types","contractDependencies":[],"contractKind":"library","documentation":{"id":48644,"nodeType":"StructuredDocumentation","src":"57:98:31","text":"@title Types\n @notice Contains various types used throughout the Optimism contract system."},"fullyImplemented":true,"linearizedBaseContracts":[48697],"name":"Types","nameLocation":"163:5:31","scope":48698,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":31}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"id":25}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47113,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47116,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","id":47258,"exportedSymbols":{"AddressUpgradeable":[48603],"Initializable":[47257]},"nodeType":"SourceUnit","src":"113:5557:27","nodes":[{"id":47108,"nodeType":"PragmaDirective","src":"113:23:27","nodes":[],"literals":["solidity","^","0.8",".2"]},{"id":47109,"nodeType":"ImportDirective","src":"138:44:27","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","nameLocation":"-1:-1:-1","scope":47258,"sourceUnit":48604,"symbolAliases":[],"unitAlias":""},{"id":47257,"nodeType":"ContractDefinition","src":"2383:3286:27","nodes":[{"id":47113,"nodeType":"VariableDeclaration","src":"2535:26:27","nodes":[],"constant":false,"documentation":{"id":47111,"nodeType":"StructuredDocumentation","src":"2421:109:27","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:27","scope":47257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47112,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":47116,"nodeType":"VariableDeclaration","src":"2664:26:27","nodes":[],"constant":false,"documentation":{"id":47114,"nodeType":"StructuredDocumentation","src":"2568:91:27","text":" @dev Indicates that the contract is in the process of being initialized."},"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:27","scope":47257,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47115,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":47121,"nodeType":"EventDefinition","src":"2792:33:27","nodes":[],"anonymous":false,"documentation":{"id":47117,"nodeType":"StructuredDocumentation","src":"2697:90:27","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","name":"Initialized","nameLocation":"2798:11:27","parameters":{"id":47120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47119,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:27","nodeType":"VariableDeclaration","scope":47121,"src":"2810:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47118,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:27"}},{"id":47177,"nodeType":"ModifierDefinition","src":"3078:506:27","nodes":[],"body":{"id":47176,"nodeType":"Block","src":"3101:483:27","nodes":[],"statements":[{"assignments":[47125],"declarations":[{"constant":false,"id":47125,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3116:14:27","nodeType":"VariableDeclaration","scope":47176,"src":"3111:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47124,"name":"bool","nodeType":"ElementaryTypeName","src":"3111:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47128,"initialValue":{"id":47127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3133:14:27","subExpression":{"id":47126,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"3134:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3111:36:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47130,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47125,"src":"3179:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47131,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"3197:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":47132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3212:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3197:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3179:34:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":47135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3178:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3219:45:27","subExpression":{"arguments":[{"arguments":[{"id":47140,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3258:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$47257","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$47257","typeString":"contract Initializable"}],"id":47139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3250:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47138,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:27","typeDescriptions":{}}},"id":47141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3250:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47136,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48603,"src":"3220:18:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$48603_$","typeString":"type(library AddressUpgradeable)"}},"id":47137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":48378,"src":"3220:29:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":47142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3220:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47144,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"3268:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":47145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3284:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3268:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":47148,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3218:68:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3178:108:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":47150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3300:48:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":47129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3157:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3157:201:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47152,"nodeType":"ExpressionStatement","src":"3157:201:27"},{"expression":{"id":47155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47153,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"3368:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":47154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3368:16:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":47156,"nodeType":"ExpressionStatement","src":"3368:16:27"},{"condition":{"id":47157,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47125,"src":"3398:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47163,"nodeType":"IfStatement","src":"3394:65:27","trueBody":{"id":47162,"nodeType":"Block","src":"3414:45:27","statements":[{"expression":{"id":47160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47158,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"3428:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3444:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3428:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47161,"nodeType":"ExpressionStatement","src":"3428:20:27"}]}},{"id":47164,"nodeType":"PlaceholderStatement","src":"3468:1:27"},{"condition":{"id":47165,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47125,"src":"3483:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47175,"nodeType":"IfStatement","src":"3479:99:27","trueBody":{"id":47174,"nodeType":"Block","src":"3499:79:27","statements":[{"expression":{"id":47168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47166,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"3513:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":47167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3529:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3513:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47169,"nodeType":"ExpressionStatement","src":"3513:21:27"},{"eventCall":{"arguments":[{"hexValue":"31","id":47171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3565:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":47170,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47121,"src":"3553:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":47172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3553:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47173,"nodeType":"EmitStatement","src":"3548:19:27"}]}}]},"documentation":{"id":47122,"nodeType":"StructuredDocumentation","src":"2831:242:27","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."},"name":"initializer","nameLocation":"3087:11:27","parameters":{"id":47123,"nodeType":"ParameterList","parameters":[],"src":"3098:2:27"},"virtual":false,"visibility":"internal"},{"id":47210,"nodeType":"ModifierDefinition","src":"4361:293:27","nodes":[],"body":{"id":47209,"nodeType":"Block","src":"4399:255:27","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4417:14:27","subExpression":{"id":47183,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"4418:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47185,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"4435:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47186,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47180,"src":"4450:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4435:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4417:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":47189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4459:48:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":47182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4409:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4409:99:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47191,"nodeType":"ExpressionStatement","src":"4409:99:27"},{"expression":{"id":47194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47192,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"4518:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47193,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47180,"src":"4533:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4518:22:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":47195,"nodeType":"ExpressionStatement","src":"4518:22:27"},{"expression":{"id":47198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47196,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"4550:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4566:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4550:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47199,"nodeType":"ExpressionStatement","src":"4550:20:27"},{"id":47200,"nodeType":"PlaceholderStatement","src":"4580:1:27"},{"expression":{"id":47203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47201,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"4591:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":47202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4607:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4591:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47204,"nodeType":"ExpressionStatement","src":"4591:21:27"},{"eventCall":{"arguments":[{"id":47206,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47180,"src":"4639:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":47205,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47121,"src":"4627:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":47207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4627:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47208,"nodeType":"EmitStatement","src":"4622:25:27"}]},"documentation":{"id":47178,"nodeType":"StructuredDocumentation","src":"3590:766:27","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."},"name":"reinitializer","nameLocation":"4370:13:27","parameters":{"id":47181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47180,"mutability":"mutable","name":"version","nameLocation":"4390:7:27","nodeType":"VariableDeclaration","scope":47210,"src":"4384:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47179,"name":"uint8","nodeType":"ElementaryTypeName","src":"4384:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4383:15:27"},"virtual":false,"visibility":"internal"},{"id":47220,"nodeType":"ModifierDefinition","src":"4864:125:27","nodes":[],"body":{"id":47219,"nodeType":"Block","src":"4892:97:27","nodes":[],"statements":[{"expression":{"arguments":[{"id":47214,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"4910:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":47215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4925:45:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":47213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4902:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4902:69:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47217,"nodeType":"ExpressionStatement","src":"4902:69:27"},{"id":47218,"nodeType":"PlaceholderStatement","src":"4981:1:27"}]},"documentation":{"id":47211,"nodeType":"StructuredDocumentation","src":"4660:199:27","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"name":"onlyInitializing","nameLocation":"4873:16:27","parameters":{"id":47212,"nodeType":"ParameterList","parameters":[],"src":"4889:2:27"},"virtual":false,"visibility":"internal"},{"id":47256,"nodeType":"FunctionDefinition","src":"5388:279:27","nodes":[],"body":{"id":47255,"nodeType":"Block","src":"5437:230:27","nodes":[],"statements":[{"expression":{"arguments":[{"id":47226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5455:14:27","subExpression":{"id":47225,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"5456:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":47227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5471:41:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":47224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5447:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5447:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47229,"nodeType":"ExpressionStatement","src":"5447:66:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47230,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"5527:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":47233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5547:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":47232,"name":"uint8","nodeType":"ElementaryTypeName","src":"5547:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":47231,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5542:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":47235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5542:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5527:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47254,"nodeType":"IfStatement","src":"5523:138:27","trueBody":{"id":47253,"nodeType":"Block","src":"5559:102:27","statements":[{"expression":{"id":47243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47237,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47113,"src":"5573:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":47240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5593:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":47239,"name":"uint8","nodeType":"ElementaryTypeName","src":"5593:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":47238,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5588:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5588:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":47242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5588:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5573:30:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":47244,"nodeType":"ExpressionStatement","src":"5573:30:27"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":47248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5639:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":47247,"name":"uint8","nodeType":"ElementaryTypeName","src":"5639:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":47246,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5634:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5634:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":47250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5634:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":47245,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47121,"src":"5622:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":47251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5622:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47252,"nodeType":"EmitStatement","src":"5617:33:27"}]}}]},"documentation":{"id":47221,"nodeType":"StructuredDocumentation","src":"4995:388:27","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."},"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5397:20:27","parameters":{"id":47222,"nodeType":"ParameterList","parameters":[],"src":"5417:2:27"},"returnParameters":{"id":47223,"nodeType":"ParameterList","parameters":[],"src":"5437:0:27"},"scope":47257,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47110,"nodeType":"StructuredDocumentation","src":"184:2198:27","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[47257],"name":"Initializable","nameLocation":"2401:13:27","scope":47258,"usedErrors":[]}],"license":"MIT"},"id":27}
{
"name": "@eth-optimism/contracts-bedrock",
"version": "0.0.0-develop-20240401230611",
"version": "0.0.0-develop-20240529000829",
"description": "Contracts for Optimism Specs",

@@ -16,9 +16,5 @@ "license": "MIT",

"tsx": "^4.7.0",
"typescript": "^5.3.3"
"typescript": "^5.4.5"
},
"scripts": {
"bindings": "pnpm bindings:ts && pnpm bindings:go",
"bindings:ts": "nx generate @eth-optimism/contracts-ts",
"bindings:go:no-build": "cd ../../op-bindings && make bindings-build",
"bindings:go": "pnpm clean && pnpm build && pnpm bindings:go:no-build",
"prebuild": "./scripts/checks/check-foundry-install.sh",

@@ -30,3 +26,3 @@ "build": "forge build",

"test:kontrol": "./test/kontrol/scripts/run-kontrol.sh script",
"genesis": "./scripts/generate-l2-genesis.sh",
"genesis": "forge script scripts/L2Genesis.s.sol:L2Genesis --sig 'runWithStateDump()'",
"coverage": "pnpm build:go-ffi && (forge coverage || (bash -c \"forge coverage 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",

@@ -38,3 +34,5 @@ "coverage:lcov": "pnpm build:go-ffi && (forge coverage --report lcov || (bash -c \"forge coverage --report lcov 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",

"gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build",
"snapshots": "forge build --ast && npx tsx scripts/autogen/generate-snapshots.ts && ./test/kontrol/scripts/make-summary-deployment.sh",
"kontrol-summary": "./test/kontrol/scripts/make-summary-deployment.sh",
"kontrol-summary-fp": "KONTROL_FP_DEPLOYMENT=true pnpm kontrol-summary",
"snapshots": "forge build && npx tsx scripts/autogen/generate-snapshots.ts && pnpm kontrol-summary && pnpm kontrol-summary-fp",
"snapshots:check": "./scripts/checks/check-snapshots.sh",

@@ -46,3 +44,3 @@ "semver-lock": "forge script scripts/SemverLock.s.sol",

"clean": "rm -rf ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./scripts/go-ffi/go-ffi ./.testdata ./deployments/hardhat/*",
"pre-pr:no-build": "pnpm gas-snapshot:no-build && pnpm snapshots && pnpm semver-lock && pnpm autogen:invariant-docs && pnpm lint && pnpm bindings:go:no-build",
"pre-pr:no-build": "pnpm gas-snapshot:no-build && pnpm snapshots && pnpm semver-lock && pnpm autogen:invariant-docs && pnpm lint",
"pre-pr": "pnpm clean && pnpm build:go-ffi && pnpm build && pnpm pre-pr:no-build",

@@ -49,0 +47,0 @@ "pre-pr:full": "pnpm test && pnpm validate-deploy-configs && pnpm validate-spacers && pnpm pre-pr",

@@ -26,2 +26,3 @@ # OP Stack Smart Contracts

- [Configuration](#configuration)
- [Custom Gas Token](#custom-gas-token)
- [Execution](#execution)

@@ -281,5 +282,9 @@ - [Deploying a single contract](#deploying-a-single-contract)

Create or modify a file `<network-name>.json` inside of the [`deploy-config`](./deploy-config/) folder.
By default, the network name will be selected automatically based on the chainid. Alternatively, the `DEPLOYMENT_CONTEXT` env var can be used to override the network name.
The spec for the deploy config is defined by the `deployConfigSpec` located inside of the [`hardhat.config.ts`](./hardhat.config.ts).
Use the env var `DEPLOY_CONFIG_PATH` to use a particular deploy config file at runtime.
#### Custom Gas Token
The Custom Gas Token feature is a Beta feature of the MIT licensed OP Stack.
While it has received initial review from core contributors, it is still undergoing testing, and may have bugs or other issues.
### Execution

@@ -290,6 +295,6 @@

1. Set the env vars `ETH_RPC_URL`, `PRIVATE_KEY` and `ETHERSCAN_API_KEY` if contract verification is desired
1. Set the env vars `ETH_RPC_URL`, `PRIVATE_KEY` and `ETHERSCAN_API_KEY` if contract verification is desired.
1. Set the `DEPLOY_CONFIG_PATH` env var to a path on the filesystem that points to a deploy config.
1. Deploy the contracts with `forge script -vvv scripts/Deploy.s.sol:Deploy --rpc-url $ETH_RPC_URL --broadcast --private-key $PRIVATE_KEY`
Pass the `--verify` flag to verify the deployments automatically with Etherscan.
1. Generate the hardhat deploy artifacts with `forge script -vvv scripts/Deploy.s.sol:Deploy --sig 'sync()' --rpc-url $ETH_RPC_URL --broadcast --private-key $PRIVATE_KEY`

@@ -296,0 +301,0 @@ ### Deploying a single contract

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc