@tokamak-network/thanos-contracts
Version:
1 lines • 129 kB
JSON
{"abi":[{"type":"function","name":"disableModule","inputs":[{"name":"prevModule","type":"address","internalType":"address"},{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableModule","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execTransactionFromModule","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execTransactionFromModuleReturnData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"getModulesPaginated","inputs":[{"name":"start","type":"address","internalType":"address"},{"name":"pageSize","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"array","type":"address[]","internalType":"address[]"},{"name":"next","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isModuleEnabled","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"DisabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EnabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleFailure","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleSuccess","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610bd28061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061006f575f3560e01c8063610b59251161004d578063610b5925146100cf578063cc2f8452146100e4578063e009cfde14610105575f80fd5b80632d9ad53d14610073578063468721a71461009b5780635229073f146100ae575b5f80fd5b61008661008136600461087f565b610118565b60405190151581526020015b60405180910390f35b6100866100a93660046108da565b61016b565b6100c16100bc3660046108da565b610282565b6040516100929291906109cd565b6100e26100dd36600461087f565b6102b6565b005b6100f76100f2366004610a40565b6104a4565b604051610092929190610a68565b6100e2610113366004610ade565b6105ce565b5f600173ffffffffffffffffffffffffffffffffffffffff831614801590610165575073ffffffffffffffffffffffffffffffffffffffff8281165f908152602081905260409020541615155b92915050565b5f336001148015906101a05750335f9081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b61020b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b610218858585855a6107a8565b9050801561024f5760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8905f90a261027a565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375905f90a25b949350505050565b5f60606102918686868661016b565b915060405160203d0181016040523d81523d5f602083013e8091505094509492505050565b6102be6107ec565b73ffffffffffffffffffffffffffffffffffffffff8116158015906102fa575073ffffffffffffffffffffffffffffffffffffffff8116600114155b610360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130310000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8181165f9081526020819052604090205416156103ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130320000000000000000000000000000000000000000000000000000006044820152606401610202565b5f60208181527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d805473ffffffffffffffffffffffffffffffffffffffff85811680865260408087208054939094167fffffffffffffffffffffffff00000000000000000000000000000000000000009384161790935560019095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440910160405180910390a150565b60605f8267ffffffffffffffff8111156104c0576104c061089f565b6040519080825280602002602001820160405280156104e9578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8086165f9081526020819052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590610552575073ffffffffffffffffffffffffffffffffffffffff8116600114155b801561055d57508482105b156105c0578084838151811061057557610575610b0f565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f9081529182905260409091205416816105b881610b3c565b925050610516565b908352919491935090915050565b6105d66107ec565b73ffffffffffffffffffffffffffffffffffffffff811615801590610612575073ffffffffffffffffffffffffffffffffffffffff8116600114155b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130310000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8281165f9081526020819052604090205481169082161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130330000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260208181526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276910160405180910390a15050565b5f60018360018111156107bd576107bd610b98565b036107d4575f808551602087018986f490506107e3565b5f80855160208701888a87f190505b95945050505050565b333014610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533033310000000000000000000000000000000000000000000000000000006044820152606401610202565b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087a575f80fd5b919050565b5f6020828403121561088f575f80fd5b61089882610857565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80356002811061087a575f80fd5b5f805f80608085870312156108ed575f80fd5b6108f685610857565b935060208501359250604085013567ffffffffffffffff80821115610919575f80fd5b818701915087601f83011261092c575f80fd5b81358181111561093e5761093e61089f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156109845761098461089f565b816040528281528a602084870101111561099c575f80fd5b826020860160208301375f6020848301015280965050505050506109c2606086016108cc565b905092959194509250565b82151581525f602060408184015283518060408501525f5b81811015610a01578581018301518582016060015282016109e5565b505f6060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b5f8060408385031215610a51575f80fd5b610a5a83610857565b946020939093013593505050565b604080825283519082018190525f906020906060840190828701845b82811015610ab657815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610a84565b50505073ffffffffffffffffffffffffffffffffffffffff9490941692019190915250919050565b5f8060408385031215610aef575f80fd5b610af883610857565b9150610b0660208401610857565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b91577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea164736f6c6343000814000a","sourceMap":"374:5660:44:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061006f575f3560e01c8063610b59251161004d578063610b5925146100cf578063cc2f8452146100e4578063e009cfde14610105575f80fd5b80632d9ad53d14610073578063468721a71461009b5780635229073f146100ae575b5f80fd5b61008661008136600461087f565b610118565b60405190151581526020015b60405180910390f35b6100866100a93660046108da565b61016b565b6100c16100bc3660046108da565b610282565b6040516100929291906109cd565b6100e26100dd36600461087f565b6102b6565b005b6100f76100f2366004610a40565b6104a4565b604051610092929190610a68565b6100e2610113366004610ade565b6105ce565b5f600173ffffffffffffffffffffffffffffffffffffffff831614801590610165575073ffffffffffffffffffffffffffffffffffffffff8281165f908152602081905260409020541615155b92915050565b5f336001148015906101a05750335f9081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b61020b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b610218858585855a6107a8565b9050801561024f5760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8905f90a261027a565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375905f90a25b949350505050565b5f60606102918686868661016b565b915060405160203d0181016040523d81523d5f602083013e8091505094509492505050565b6102be6107ec565b73ffffffffffffffffffffffffffffffffffffffff8116158015906102fa575073ffffffffffffffffffffffffffffffffffffffff8116600114155b610360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130310000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8181165f9081526020819052604090205416156103ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130320000000000000000000000000000000000000000000000000000006044820152606401610202565b5f60208181527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d805473ffffffffffffffffffffffffffffffffffffffff85811680865260408087208054939094167fffffffffffffffffffffffff00000000000000000000000000000000000000009384161790935560019095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440910160405180910390a150565b60605f8267ffffffffffffffff8111156104c0576104c061089f565b6040519080825280602002602001820160405280156104e9578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8086165f9081526020819052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590610552575073ffffffffffffffffffffffffffffffffffffffff8116600114155b801561055d57508482105b156105c0578084838151811061057557610575610b0f565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f9081529182905260409091205416816105b881610b3c565b925050610516565b908352919491935090915050565b6105d66107ec565b73ffffffffffffffffffffffffffffffffffffffff811615801590610612575073ffffffffffffffffffffffffffffffffffffffff8116600114155b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130310000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8281165f9081526020819052604090205481169082161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533130330000000000000000000000000000000000000000000000000000006044820152606401610202565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260208181526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276910160405180910390a15050565b5f60018360018111156107bd576107bd610b98565b036107d4575f808551602087018986f490506107e3565b5f80855160208701888a87f190505b95945050505050565b333014610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f47533033310000000000000000000000000000000000000000000000000000006044820152606401610202565b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087a575f80fd5b919050565b5f6020828403121561088f575f80fd5b61089882610857565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80356002811061087a575f80fd5b5f805f80608085870312156108ed575f80fd5b6108f685610857565b935060208501359250604085013567ffffffffffffffff80821115610919575f80fd5b818701915087601f83011261092c575f80fd5b81358181111561093e5761093e61089f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156109845761098461089f565b816040528281528a602084870101111561099c575f80fd5b826020860160208301375f6020848301015280965050505050506109c2606086016108cc565b905092959194509250565b82151581525f602060408184015283518060408501525f5b81811015610a01578581018301518582016060015282016109e5565b505f6060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b5f8060408385031215610a51575f80fd5b610a5a83610857565b946020939093013593505050565b604080825283519082018190525f906020906060840190828701845b82811015610ab657815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610a84565b50505073ffffffffffffffffffffffffffffffffffffffff9490941692019190915250919050565b5f8060408385031215610aef575f80fd5b610af883610857565b9150610b0660208401610857565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b91577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea164736f6c6343000814000a","sourceMap":"374:5660:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:151;;;;;;:::i;:::-;;:::i;:::-;;;571:14:96;;564:22;546:41;;534:2;519:18;4861:151:44;;;;;;;;2868:586;;;;;;:::i;:::-;;:::i;3805:959::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1363:426::-;;;;;;:::i;:::-;;:::i;:::-;;5257:775;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2109:423::-;;;;;;:::i;:::-;;:::i;4861:151::-;4923:4;692:3;4946:26;;;;;;;:59;;-1:-1:-1;4976:29:44;:15;;;5003:1;4976:15;;;;;;;;;;;;:29;;4946:59;4939:66;4861:151;-1:-1:-1;;4861:151:44:o;2868:586::-;3037:12;3118:10;692:3;3118:30;;;;:67;;-1:-1:-1;3160:10:44;3183:1;3152:19;;;;;;;;;;;:33;:19;:33;;3118:67;3110:85;;;;;;;4391:2:96;3110:85:44;;;4373:21:96;4430:1;4410:18;;;4403:29;4468:7;4448:18;;;4441:35;4493:18;;3110:85:44;;;;;;;;;3277:46;3285:2;3289:5;3296:4;3302:9;3313;3277:7;:46::i;:::-;3267:56;;3337:7;3333:114;;;3351:38;;3378:10;;3351:38;;;;;3333:114;;;3409:38;;3436:10;;3409:38;;;;;3333:114;2868:586;;;;;;:::o;3805:959::-;3976:12;3990:23;4035:53;4061:2;4065:5;4072:4;4078:9;4035:25;:53::i;:::-;4025:63;;4235:4;4229:11;4477:4;4459:16;4455:27;4450:3;4446:37;4440:4;4433:51;4539:16;4534:3;4527:29;4633:16;4630:1;4623:4;4618:3;4614:14;4599:51;4745:3;4731:17;;;3805:959;;;;;;;:::o;1363:426::-;440:17:49;:15;:17::i;:::-;1491:20:44::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;1515:26:44::1;::::0;::::1;692:3;1515:26;;1491:50;1483:68;;;::::0;::::1;::::0;;4724:2:96;1483:68:44::1;::::0;::::1;4706:21:96::0;4763:1;4743:18;;;4736:29;4801:7;4781:18;;;4774:35;4826:18;;1483:68:44::1;4522:328:96::0;1483:68:44::1;1610:29;:15:::0;;::::1;1637:1;1610:15:::0;;;::::1;::::0;;;;;;;::::1;:29:::0;1602:47:::1;;;::::0;::::1;::::0;;5057:2:96;1602:47:44::1;::::0;::::1;5039:21:96::0;5096:1;5076:18;;;5069:29;5134:7;5114:18;;;5107:35;5159:18;;1602:47:44::1;4855:328:96::0;1602:47:44::1;1677:7;:25;::::0;;;;;;::::1;1659:15:::0;;::::1;::::0;;;1677:25;1659:15;;;:43;;1677:25;;;::::1;1659:43:::0;;;::::1;;::::0;;;-1:-1:-1;1712:25:44;;;:34;;::::1;::::0;::::1;::::0;;;1761:21;5334:74:96;;;1761:21:44::1;::::0;5307:18:96;1761:21:44::1;;;;;;;1363:426:::0;:::o;5257:775::-;5342:22;5366:12;5453:8;5439:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5439:23:44;-1:-1:-1;5563:14:44;;;;5506:19;5563:14;;;;;;;;;;;5431:31;;-1:-1:-1;5506:19:44;5563:14;5587:239;5594:29;;;;;;;:66;;-1:-1:-1;5627:33:44;;;692:3;5627:33;;5594:66;:92;;;;;5678:8;5664:11;:22;5594:92;5587:239;;;5723:13;5702:5;5708:11;5702:18;;;;;;;;:::i;:::-;:34;;;;:18;;;;;;;;;;:34;;;;5766:22;;;:7;:22;;;;;;;;;;;;;5802:13;;;;:::i;:::-;;;;5587:239;;;5990:26;;;5997:5;;5842:13;;-1:-1:-1;5257:775:44;;-1:-1:-1;;5257:775:44:o;2109:423::-;440:17:49;:15;:17::i;:::-;2286:20:44::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;2310:26:44::1;::::0;::::1;692:3;2310:26;;2286:50;2278:68;;;::::0;::::1;::::0;;4724:2:96;2278:68:44::1;::::0;::::1;4706:21:96::0;4763:1;4743:18;;;4736:29;4801:7;4781:18;;;4774:35;4826:18;;2278:68:44::1;4522:328:96::0;2278:68:44::1;2364:29;:19:::0;;::::1;:7;:19:::0;;;::::1;::::0;;;;;;;;::::1;:29:::0;;::::1;;2356:47;;;::::0;::::1;::::0;;6164:2:96;2356:47:44::1;::::0;::::1;6146:21:96::0;6203:1;6183:18;;;6176:29;6241:7;6221:18;;;6214:35;6266:18;;2356:47:44::1;5962:328:96::0;2356:47:44::1;2435:15;::::0;;::::1;:7;:15:::0;;;::::1;::::0;;;;;;;;;2413:19;;::::1;::::0;;;;;:37;;2435:15;;;::::1;2413:37:::0;;;::::1;;::::0;;;2460:15;;;;:28;;;;::::1;::::0;;;2503:22;;5334:74:96;;;2503:22:44::1;::::0;5307:18:96;2503:22:44::1;;;;;;;2109:423:::0;;:::o;242:639:41:-;410:12;451:27;438:9;:40;;;;;;;;:::i;:::-;;434:441;;649:1;646;639:4;633:11;626:4;620;616:15;612:2;605:5;592:59;581:70;;434:441;;;849:1;846;839:4;833:11;826:4;820;816:15;809:5;805:2;798:5;793:58;782:69;;434:441;242:639;;;;;;;:::o;231:102:49:-;289:10;311:4;289:27;281:45;;;;;;;6686:2:96;281:45:49;;;6668:21:96;6725:1;6705:18;;;6698:29;6763:7;6743:18;;;6736:35;6788:18;;281:45:49;6484:328:96;281:45:49;231:102::o;14:196:96:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:96:o;598:184::-;650:77;647:1;640:88;747:4;744:1;737:15;771:4;768:1;761:15;787:150;862:20;;911:1;901:12;;891:40;;927:1;924;917:12;942:1219;1052:6;1060;1068;1076;1129:3;1117:9;1108:7;1104:23;1100:33;1097:53;;;1146:1;1143;1136:12;1097:53;1169:29;1188:9;1169:29;:::i;:::-;1159:39;;1245:2;1234:9;1230:18;1217:32;1207:42;;1300:2;1289:9;1285:18;1272:32;1323:18;1364:2;1356:6;1353:14;1350:34;;;1380:1;1377;1370:12;1350:34;1418:6;1407:9;1403:22;1393:32;;1463:7;1456:4;1452:2;1448:13;1444:27;1434:55;;1485:1;1482;1475:12;1434:55;1521:2;1508:16;1543:2;1539;1536:10;1533:36;;;1549:18;;:::i;:::-;1683:2;1677:9;1745:4;1737:13;;1588:66;1733:22;;;1757:2;1729:31;1725:40;1713:53;;;1781:18;;;1801:22;;;1778:46;1775:72;;;1827:18;;:::i;:::-;1867:10;1863:2;1856:22;1902:2;1894:6;1887:18;1942:7;1937:2;1932;1928;1924:11;1920:20;1917:33;1914:53;;;1963:1;1960;1953:12;1914:53;2019:2;2014;2010;2006:11;2001:2;1993:6;1989:15;1976:46;2064:1;2059:2;2054;2046:6;2042:15;2038:24;2031:35;2085:6;2075:16;;;;;;;2110:45;2151:2;2140:9;2136:18;2110:45;:::i;:::-;2100:55;;942:1219;;;;;;;:::o;2166:686::-;2349:6;2342:14;2335:22;2324:9;2317:41;2298:4;2377:2;2415;2410;2399:9;2395:18;2388:30;2447:6;2441:13;2490:6;2485:2;2474:9;2470:18;2463:34;2515:1;2525:140;2539:6;2536:1;2533:13;2525:140;;;2634:14;;;2630:23;;2624:30;2600:17;;;2619:2;2596:26;2589:66;2554:10;;2525:140;;;2529:3;2714:1;2709:2;2700:6;2689:9;2685:22;2681:31;2674:42;2843:2;2773:66;2768:2;2760:6;2756:15;2752:88;2741:9;2737:104;2733:113;2725:121;;;;2166:686;;;;;:::o;2857:254::-;2925:6;2933;2986:2;2974:9;2965:7;2961:23;2957:32;2954:52;;;3002:1;2999;2992:12;2954:52;3025:29;3044:9;3025:29;:::i;:::-;3015:39;3101:2;3086:18;;;;3073:32;;-1:-1:-1;;;2857:254:96:o;3116:803::-;3334:2;3346:21;;;3416:13;;3319:18;;;3438:22;;;3286:4;;3513;;3491:2;3476:18;;;3540:15;;;3286:4;3583:218;3597:6;3594:1;3591:13;3583:218;;;3662:13;;3677:42;3658:62;3646:75;;3741:12;;;;3776:15;;;;3619:1;3612:9;3583:218;;;-1:-1:-1;;;3869:42:96;3857:55;;;;3837:18;;3830:83;;;;-1:-1:-1;3818:3:96;3116:803;-1:-1:-1;3116:803:96:o;3924:260::-;3992:6;4000;4053:2;4041:9;4032:7;4028:23;4024:32;4021:52;;;4069:1;4066;4059:12;4021:52;4092:29;4111:9;4092:29;:::i;:::-;4082:39;;4140:38;4174:2;4163:9;4159:18;4140:38;:::i;:::-;4130:48;;3924:260;;;;;:::o;5419:184::-;5471:77;5468:1;5461:88;5568:4;5565:1;5558:15;5592:4;5589:1;5582:15;5608:349;5647:3;5678:66;5671:5;5668:77;5665:257;;5778:77;5775:1;5768:88;5879:4;5876:1;5869:15;5907:4;5904:1;5897:15;5665:257;-1:-1:-1;5949:1:96;5938:13;;5608:349::o;6295:184::-;6347:77;6344:1;6337:88;6444:4;6441:1;6434:15;6468:4;6465:1;6458:15","linkReferences":{}},"methodIdentifiers":{"disableModule(address,address)":"e009cfde","enableModule(address)":"610b5925","execTransactionFromModule(address,uint256,bytes,uint8)":"468721a7","execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":"5229073f","getModulesPaginated(address,uint256)":"cc2f8452","isModuleEnabled(address)":"2d9ad53d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"DisabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"EnabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleSuccess\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"disableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"enableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModuleReturnData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"start\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getModulesPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"array\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"next\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"isModuleEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.pm>Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{\"disableModule(address,address)\":{\"details\":\"Allows to remove a module from the whitelist. This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be removed.\",\"prevModule\":\"Module that pointed to the module to be removed in the linked list\"}},\"enableModule(address)\":{\"details\":\"Allows to add a module to the whitelist. This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be whitelisted.\"}},\"execTransactionFromModule(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations.\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations and return data\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"getModulesPaginated(address,uint256)\":{\"details\":\"Returns array of modules.\",\"params\":{\"pageSize\":\"Maximum number of modules that should be returned.\",\"start\":\"Start of the page.\"},\"returns\":{\"array\":\"Array of modules.\",\"next\":\"Start of the next page.\"}},\"isModuleEnabled(address)\":{\"details\":\"Returns if an module is enabled\",\"returns\":{\"_0\":\"True if the module is enabled\"}}},\"title\":\"Module Manager - A contract that manages modules that can execute transactions via this contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"disableModule(address,address)\":{\"notice\":\"Disables the module `module` for the Safe.\"},\"enableModule(address)\":{\"notice\":\"Enables the module `module` for the Safe.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/ModuleManager.sol\":\"ModuleManager\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309\",\"dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk\"]},\"lib/safe-contracts/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc\",\"dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d\",\"dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29\",\"dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"DisabledModule","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"EnabledModule","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleFailure","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleSuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"prevModule","type":"address"},{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableModule"},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableModule"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModule","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModuleReturnData","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"start","type":"address"},{"internalType":"uint256","name":"pageSize","type":"uint256"}],"stateMutability":"view","type":"function","name":"getModulesPaginated","outputs":[{"internalType":"address[]","name":"array","type":"address[]"},{"internalType":"address","name":"next","type":"address"}]},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"view","type":"function","name":"isModuleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist. This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist. This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}}},"version":1},"userdoc":{"kind":"user","methods":{"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/ModuleManager.sol":"ModuleManager"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08","urls":["bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309","dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/ModuleManager.sol":{"keccak256":"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5","urls":["bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc","dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f","urls":["bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d","dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc","urls":["bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29","dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":49958,"contract":"lib/safe-contracts/contracts/base/ModuleManager.sol:ModuleManager","label":"modules","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."}}},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.pm>Richard Meissner - <richard@gnosis.pm>","methods":{"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist. This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist. This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}}},"title":"Module Manager - A contract that manages modules that can execute transactions via this contract"},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/ModuleManager.sol","id":50290,"exportedSymbols":{"Enum":[50807],"Executor":[49793],"ModuleManager":[50289],"SelfAuthorized":[50882]},"nodeType":"SourceUnit","src":"42:5993:44","nodes":[{"id":49924,"nodeType":"PragmaDirective","src":"42:31:44","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":49925,"nodeType":"ImportDirective","src":"74:28:44","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":50290,"sourceUnit":50808,"symbolAliases":[],"unitAlias":""},{"id":49926,"nodeType":"ImportDirective","src":"103:38:44","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","file":"../common/SelfAuthorized.sol","nameLocation":"-1:-1:-1","scope":50290,"sourceUnit":50883,"symbolAliases":[],"unitAlias":""},{"id":49927,"nodeType":"ImportDirective","src":"142:24:44","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/Executor.sol","file":"./Executor.sol","nameLocation":"-1:-1:-1","scope":50290,"sourceUnit":49794,"symbolAliases":[],"unitAlias":""},{"id":50289,"nodeType":"ContractDefinition","src":"374:5660:44","nodes":[{"id":49936,"nodeType":"EventDefinition","src":"431:36:44","nodes":[],"anonymous":false,"eventSelector":"ecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440","name":"EnabledModule","nameLocation":"437:13:44","parameters":{"id":49935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49934,"indexed":false,"mutability":"mutable","name":"module","nameLocation":"459:6:44","nodeType":"VariableDeclaration","scope":49936,"src":"451:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49933,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"450:16:44"}},{"id":49940,"nodeType":"EventDefinition","src":"472:37:44","nodes":[],"anonymous":false,"eventSelector":"aab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276","name":"DisabledModule","nameLocation":"478:14:44","parameters":{"id":49939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49938,"indexed":false,"mutability":"mutable","name":"module","nameLocation":"501:6:44","nodeType":"VariableDeclaration","scope":49940,"src":"493:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49937,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"492:16:44"}},{"id":49944,"nodeType":"EventDefinition","src":"514:57:44","nodes":[],"anonymous":false,"eventSelector":"6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8","name":"ExecutionFromModuleSuccess","nameLocation":"520:26:44","parameters":{"id":49943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49942,"indexed":true,"mutability":"mutable","name":"module","nameLocation":"563:6:44","nodeType":"VariableDeclaration","scope":49944,"src":"547:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49941,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"546:24:44"}},{"id":49948,"nodeType":"EventDefinition","src":"576:57:44","nodes":[],"anonymous":false,"eventSelector":"acd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375","name":"ExecutionFromModuleFailure","nameLocation":"582:26:44","parameters":{"id":49947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49946,"indexed":true,"mutability":"mutable","name":"module","nameLocation":"625:6:44","nodeType":"VariableDeclaration","scope":49948,"src":"609:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49945,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:24:44"}},{"id":49954,"nodeType":"VariableDeclaration","src":"639:57:44","nodes":[],"constant":true,"mutability":"constant","name":"SENTINEL_MODULES","nameLocation":"665:16:44","scope":50289,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49949,"name":"address","nodeType":"ElementaryTypeName","src":"639:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307831","id":49952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":49951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49950,"name":"address","nodeType":"ElementaryTypeName","src":"684:7:44","typeDescriptions":{}}},"id":49953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":49958,"nodeType":"VariableDeclaration","src":"703:44:44","nodes":[],"constant":false,"mutability":"mutable","name":"modules","nameLocation":"740:7:44","scope":50289,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":49957,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49955,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"703:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49956,"name":"address","nodeType":"ElementaryTypeName","src":"722:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":50005,"nodeType":"FunctionDefinition","src":"754:384:44","nodes":[],"body":{"id":50004,"nodeType":"Block","src":"816:322:44","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":49966,"name":"modules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49958,"src":"834:7:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":49968,"indexExpression":{"id":49967,"name":"SENTINEL_MODULES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49954,"src":"842:16:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"834:25:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":49971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:1:44","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":49970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49969,"name":"address","nodeType":"ElementaryTypeName","src":"863:7:44","typeDescriptions":{}}},"id":49972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"834:39:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753313030","id":49974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"875:7:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c9c6f726a0896ef73f47c5bcc7192641db350a8b0b2e1f61e0f0c694ec59426","typeString":"literal_string \"GS100\""},"value":"GS100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c9c6f726a0896ef73f47c5bcc7192641db350a8b0b2e1f61e0f0c694ec59426","typeString":"literal_string \"GS100\""}],"id":49965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"826:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49976,