UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 105 kB
{"abi":[{"type":"function","name":"calculateCreateProxyWithNonceAddress","inputs":[{"name":"_singleton","type":"address","internalType":"address"},{"name":"initializer","type":"bytes","internalType":"bytes"},{"name":"saltNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proxy","type":"address","internalType":"contract GnosisSafeProxy"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProxy","inputs":[{"name":"singleton","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"proxy","type":"address","internalType":"contract GnosisSafeProxy"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProxyWithCallback","inputs":[{"name":"_singleton","type":"address","internalType":"address"},{"name":"initializer","type":"bytes","internalType":"bytes"},{"name":"saltNonce","type":"uint256","internalType":"uint256"},{"name":"callback","type":"address","internalType":"contract IProxyCreationCallback"}],"outputs":[{"name":"proxy","type":"address","internalType":"contract GnosisSafeProxy"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProxyWithNonce","inputs":[{"name":"_singleton","type":"address","internalType":"address"},{"name":"initializer","type":"bytes","internalType":"bytes"},{"name":"saltNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proxy","type":"address","internalType":"contract GnosisSafeProxy"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxyCreationCode","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"proxyRuntimeCode","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"event","name":"ProxyCreation","inputs":[{"name":"proxy","type":"address","indexed":false,"internalType":"contract GnosisSafeProxy"},{"name":"singleton","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610b518061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061006f575f3560e01c806361b69abd1161004d57806361b69abd146100d8578063addacc0f146100eb578063d18af54d146100f3575f80fd5b80631688f0b9146100735780632500510e146100b057806353e5d935146100c3575b5f80fd5b6100866100813660046106ea565b610106565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100866100be36600461073f565b610189565b6100cb610267565b6040516100a7919061082e565b6100866100e6366004610847565b6102af565b6100cb61036a565b610086610101366004610894565b61037c565b5f610112848484610491565b835190915015610132575f805f8551602087015f865af103610132575f80fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8084168252861660208201527f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235910160405180910390a19392505050565b5f6101cb8585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250610491915050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166020820152909150603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261025e9160040161082e565b60405180910390fd5b606060405180602001610279906105d9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052919050565b5f826040516102bd906105d9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff0801580156102f3573d5f803e3d5ffd5b50825190915015610314575f805f8451602086015f865af103610314575f80fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201527f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235910160405180910390a192915050565b606060405180602001610279906105e6565b5f8083836040516020016103bf92919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b604051602081830303815290604052805190602001205f1c90506103e4868683610106565b915073ffffffffffffffffffffffffffffffffffffffff831615610488576040517f1e52b51800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690631e52b5189061045a9085908a908a908a906004016108fc565b5f604051808303815f87803b158015610471575f80fd5b505af1158015610483573d5f803e3d5ffd5b505050505b50949350505050565b5f808380519060200120836040516020016104b6929190918252602082015260400190565b6040516020818303038152906040528051906020012090505f604051806020016104df906105d9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f909101166040819052610537919073ffffffffffffffffffffffffffffffffffffffff891690602001610945565b6040516020818303038152906040529050818151826020015ff5925073ffffffffffffffffffffffffffffffffffffffff83166105d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f437265617465322063616c6c206661696c656400000000000000000000000000604482015260640161025e565b50509392505050565b6101678061096783390190565b607780610ace83390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610613575f80fd5b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610652575f80fd5b813567ffffffffffffffff8082111561066d5761066d610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156106b3576106b3610616565b816040528381528660208588010111156106cb575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156106fc575f80fd5b8335610707816105f2565b9250602084013567ffffffffffffffff811115610722575f80fd5b61072e86828701610643565b925050604084013590509250925092565b5f805f8060608587031215610752575f80fd5b843561075d816105f2565b9350602085013567ffffffffffffffff80821115610779575f80fd5b818701915087601f83011261078c575f80fd5b81358181111561079a575f80fd5b8860208285010111156107ab575f80fd5b95986020929092019750949560400135945092505050565b5f5b838110156107dd5781810151838201526020016107c5565b50505f910152565b5f81518084526107fc8160208601602086016107c3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f61084060208301846107e5565b9392505050565b5f8060408385031215610858575f80fd5b8235610863816105f2565b9150602083013567ffffffffffffffff81111561087e575f80fd5b61088a85828601610643565b9150509250929050565b5f805f80608085870312156108a7575f80fd5b84356108b2816105f2565b9350602085013567ffffffffffffffff8111156108cd575f80fd5b6108d987828801610643565b9350506040850135915060608501356108f1816105f2565b939692955090935050565b5f73ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261093460808301856107e5565b905082606083015295945050505050565b5f83516109568184602088016107c3565b919091019182525060200191905056fe608060405234801561000f575f80fd5b5060405161016738038061016783398101604081905261002e916100b7565b6001600160a01b0381166100935760405162461bcd60e51b815260206004820152602260248201527f496e76616c69642073696e676c65746f6e20616464726573732070726f766964604482015261195960f21b606482015260840160405180910390fd5b5f80546001600160a01b0319166001600160a01b03929092169190911790556100e4565b5f602082840312156100c7575f80fd5b81516001600160a01b03811681146100dd575f80fd5b9392505050565b6077806100f05f395ff3fe60806040525f73ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604c57808252602082f35b3682833781823684845af490503d82833e806065573d82fd5b503d81f3fea164736f6c6343000814000a60806040525f73ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604c57808252602082f35b3682833781823684845af490503d82833e806065573d82fd5b503d81f3fea164736f6c6343000814000aa164736f6c6343000814000a","sourceMap":"324:5502:62:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061006f575f3560e01c806361b69abd1161004d57806361b69abd146100d8578063addacc0f146100eb578063d18af54d146100f3575f80fd5b80631688f0b9146100735780632500510e146100b057806353e5d935146100c3575b5f80fd5b6100866100813660046106ea565b610106565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100866100be36600461073f565b610189565b6100cb610267565b6040516100a7919061082e565b6100866100e6366004610847565b6102af565b6100cb61036a565b610086610101366004610894565b61037c565b5f610112848484610491565b835190915015610132575f805f8551602087015f865af103610132575f80fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8084168252861660208201527f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235910160405180910390a19392505050565b5f6101cb8585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250610491915050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166020820152909150603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261025e9160040161082e565b60405180910390fd5b606060405180602001610279906105d9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052919050565b5f826040516102bd906105d9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff0801580156102f3573d5f803e3d5ffd5b50825190915015610314575f805f8451602086015f865af103610314575f80fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201527f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235910160405180910390a192915050565b606060405180602001610279906105e6565b5f8083836040516020016103bf92919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b604051602081830303815290604052805190602001205f1c90506103e4868683610106565b915073ffffffffffffffffffffffffffffffffffffffff831615610488576040517f1e52b51800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690631e52b5189061045a9085908a908a908a906004016108fc565b5f604051808303815f87803b158015610471575f80fd5b505af1158015610483573d5f803e3d5ffd5b505050505b50949350505050565b5f808380519060200120836040516020016104b6929190918252602082015260400190565b6040516020818303038152906040528051906020012090505f604051806020016104df906105d9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f909101166040819052610537919073ffffffffffffffffffffffffffffffffffffffff891690602001610945565b6040516020818303038152906040529050818151826020015ff5925073ffffffffffffffffffffffffffffffffffffffff83166105d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f437265617465322063616c6c206661696c656400000000000000000000000000604482015260640161025e565b50509392505050565b6101678061096783390190565b607780610ace83390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610613575f80fd5b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610652575f80fd5b813567ffffffffffffffff8082111561066d5761066d610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156106b3576106b3610616565b816040528381528660208588010111156106cb575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156106fc575f80fd5b8335610707816105f2565b9250602084013567ffffffffffffffff811115610722575f80fd5b61072e86828701610643565b925050604084013590509250925092565b5f805f8060608587031215610752575f80fd5b843561075d816105f2565b9350602085013567ffffffffffffffff80821115610779575f80fd5b818701915087601f83011261078c575f80fd5b81358181111561079a575f80fd5b8860208285010111156107ab575f80fd5b95986020929092019750949560400135945092505050565b5f5b838110156107dd5781810151838201526020016107c5565b50505f910152565b5f81518084526107fc8160208601602086016107c3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f61084060208301846107e5565b9392505050565b5f8060408385031215610858575f80fd5b8235610863816105f2565b9150602083013567ffffffffffffffff81111561087e575f80fd5b61088a85828601610643565b9150509250929050565b5f805f80608085870312156108a7575f80fd5b84356108b2816105f2565b9350602085013567ffffffffffffffff8111156108cd575f80fd5b6108d987828801610643565b9350506040850135915060608501356108f1816105f2565b939692955090935050565b5f73ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261093460808301856107e5565b905082606083015295945050505050565b5f83516109568184602088016107c3565b919091019182525060200191905056fe608060405234801561000f575f80fd5b5060405161016738038061016783398101604081905261002e916100b7565b6001600160a01b0381166100935760405162461bcd60e51b815260206004820152602260248201527f496e76616c69642073696e676c65746f6e20616464726573732070726f766964604482015261195960f21b606482015260840160405180910390fd5b5f80546001600160a01b0319166001600160a01b03929092169190911790556100e4565b5f602082840312156100c7575f80fd5b81516001600160a01b03811681146100dd575f80fd5b9392505050565b6077806100f05f395ff3fe60806040525f73ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604c57808252602082f35b3682833781823684845af490503d82833e806065573d82fd5b503d81f3fea164736f6c6343000814000a60806040525f73ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604c57808252602082f35b3682833781823684845af490503d82833e806065573d82fd5b503d81f3fea164736f6c6343000814000aa164736f6c6343000814000a","sourceMap":"324:5502:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3268:576;;;;;;:::i;:::-;;:::i;:::-;;;1881:42:96;1869:55;;;1851:74;;1839:2;1824:18;3268:576:62;;;;;;;;5510:314;;;;;;:::i;:::-;;:::i;1548:122::-;;;:::i;:::-;;;;;;;:::i;675:462::-;;;;;;:::i;:::-;;:::i;1277:120::-;;;:::i;4382:511::-;;;;;;:::i;:::-;;:::i;3268:576::-;3409:21;3450:56;3471:10;3483:11;3496:9;3450:20;:56::i;:::-;3520:18;;3442:64;;-1:-1:-1;3520:22:62;3516:275;;3722:1;3718;3715;3701:11;3695:18;3688:4;3675:11;3671:22;3668:1;3661:5;3654;3649:71;3646:78;3643:134;;3757:1;3754;3747:12;3643:134;3805:32;;;4925:42:96;4994:15;;;4976:34;;5046:15;;5041:2;5026:18;;5019:43;3805:32:62;;4888:18:96;3805:32:62;;;;;;;3268:576;;;;;:::o;5510:314::-;5671:21;5712:56;5733:10;5745:11;;5712:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5758:9:62;;-1:-1:-1;5712:20:62;;-1:-1:-1;;5712:56:62:i;:::-;5792:23;;5268:66:96;5255:2;5251:15;;;5247:88;5792:23:62;;;5235:101:96;5704:64:62;;-1:-1:-1;5352:12:96;;5792:23:62;;;;;;;;;;;;;;5778:39;;;;;;;;:::i;:::-;;;;;;;;1548:122;1598:12;1629:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1548:122;-1:-1:-1;1548:122:62:o;675:462::-;750:21;811:9;791:30;;;;;:::i;:::-;1881:42:96;1869:55;;;1851:74;;1839:2;1824:18;791:30:62;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;835:11:62;;783:38;;-1:-1:-1;835:15:62;831:254;;1016:1;1012;1009;1002:4;996:11;989:4;983;979:15;976:1;969:5;962;957:57;954:64;951:120;;1051:1;1048;1041:12;951:120;1099:31;;;4925:42:96;4994:15;;;4976:34;;5046:15;;5041:2;5026:18;;5019:43;1099:31:62;;4888:18:96;1099:31:62;;;;;;;675:462;;;;:::o;1277:120::-;1326:12;1357:33;;;;;;;;:::i;4382:511::-;4567:21;4600:29;4667:9;4678:8;4650:37;;;;;;;;6019:19:96;;;6076:2;6072:15;6089:66;6068:88;6063:2;6054:12;;6047:110;6182:2;6173:12;;5830:361;4650:37:62;;;;;;;;;;;;;4640:48;;;;;;4632:57;;4600:89;;4707:68;4728:10;4740:11;4753:21;4707:20;:68::i;:::-;4699:76;-1:-1:-1;4789:31:62;;;;4785:101;;4822:64;;;;;:21;;;;;;:64;;4844:5;;4851:10;;4863:11;;4876:9;;4822:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4785:101;4590:303;4382:511;;;;;;:::o;2118:769::-;2261:21;2436:12;2488:11;2478:22;;;;;;2502:9;2461:51;;;;;;;;6902:19:96;;;6946:2;6937:12;;6930:28;6983:2;6974:12;;6745:247;2461:51:62;;;;;;;;;;;;;2451:62;;;;;;2436:77;;2523:27;2570:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2553:82;;2570:34;2606:28;;;;2570:34;2553:82;;:::i;:::-;;;;;;;;;;;;;2523:112;;2796:4;2779:14;2773:21;2756:14;2750:4;2746:25;2741:3;2733:68;2724:77;-1:-1:-1;2828:28:62;;;2820:60;;;;;;;7587:2:96;2820:60:62;;;7569:21:96;7626:2;7606:18;;;7599:30;7665:21;7645:18;;;7638:49;7704:18;;2820:60:62;7385:343:96;2820:60:62;2284:603;;2118:769;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:96:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:184::-;225:77;222:1;215:88;322:4;319:1;312:15;346:4;343:1;336:15;362:777;404:5;457:3;450:4;442:6;438:17;434:27;424:55;;475:1;472;465:12;424:55;511:6;498:20;537:18;574:2;570;567:10;564:36;;;580:18;;:::i;:::-;714:2;708:9;776:4;768:13;;619:66;764:22;;;788:2;760:31;756:40;744:53;;;812:18;;;832:22;;;809:46;806:72;;;858:18;;:::i;:::-;898:10;894:2;887:22;933:2;925:6;918:18;979:3;972:4;967:2;959:6;955:15;951:26;948:35;945:55;;;996:1;993;986:12;945:55;1060:2;1053:4;1045:6;1041:17;1034:4;1026:6;1022:17;1009:54;1107:1;1100:4;1095:2;1087:6;1083:15;1079:26;1072:37;1127:6;1118:15;;;;;;362:777;;;;:::o;1144:523::-;1230:6;1238;1246;1299:2;1287:9;1278:7;1274:23;1270:32;1267:52;;;1315:1;1312;1305:12;1267:52;1354:9;1341:23;1373:31;1398:5;1373:31;:::i;:::-;1423:5;-1:-1:-1;1479:2:96;1464:18;;1451:32;1506:18;1495:30;;1492:50;;;1538:1;1535;1528:12;1492:50;1561:49;1602:7;1593:6;1582:9;1578:22;1561:49;:::i;:::-;1551:59;;;1657:2;1646:9;1642:18;1629:32;1619:42;;1144:523;;;;;:::o;1936:794::-;2024:6;2032;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2281:2:96;2266:18;;2253:32;2304:18;2334:14;;;2331:34;;;2361:1;2358;2351:12;2331:34;2399:6;2388:9;2384:22;2374:32;;2444:7;2437:4;2433:2;2429:13;2425:27;2415:55;;2466:1;2463;2456:12;2415:55;2506:2;2493:16;2532:2;2524:6;2521:14;2518:34;;;2548:1;2545;2538:12;2518:34;2593:7;2588:2;2579:6;2575:2;2571:15;2567:24;2564:37;2561:57;;;2614:1;2611;2604:12;2561:57;1936:794;;2645:2;2637:11;;;;;-1:-1:-1;2667:6:96;;2720:2;2705:18;2692:32;;-1:-1:-1;1936:794:96;-1:-1:-1;;;1936:794:96:o;2735:250::-;2820:1;2830:113;2844:6;2841:1;2838:13;2830:113;;;2920:11;;;2914:18;2901:11;;;2894:39;2866:2;2859:10;2830:113;;;-1:-1:-1;;2977:1:96;2959:16;;2952:27;2735:250::o;2990:329::-;3031:3;3069:5;3063:12;3096:6;3091:3;3084:19;3112:76;3181:6;3174:4;3169:3;3165:14;3158:4;3151:5;3147:16;3112:76;:::i;:::-;3233:2;3221:15;3238:66;3217:88;3208:98;;;;3308:4;3204:109;;2990:329;-1:-1:-1;;2990:329:96:o;3324:217::-;3471:2;3460:9;3453:21;3434:4;3491:44;3531:2;3520:9;3516:18;3508:6;3491:44;:::i;:::-;3483:52;3324:217;-1:-1:-1;;;3324:217:96:o;3546:455::-;3623:6;3631;3684:2;3672:9;3663:7;3659:23;3655:32;3652:52;;;3700:1;3697;3690:12;3652:52;3739:9;3726:23;3758:31;3783:5;3758:31;:::i;:::-;3808:5;-1:-1:-1;3864:2:96;3849:18;;3836:32;3891:18;3880:30;;3877:50;;;3923:1;3920;3913:12;3877:50;3946:49;3987:7;3978:6;3967:9;3963:22;3946:49;:::i;:::-;3936:59;;;3546:455;;;;;:::o;4006:697::-;4133:6;4141;4149;4157;4210:3;4198:9;4189:7;4185:23;4181:33;4178:53;;;4227:1;4224;4217:12;4178:53;4266:9;4253:23;4285:31;4310:5;4285:31;:::i;:::-;4335:5;-1:-1:-1;4391:2:96;4376:18;;4363:32;4418:18;4407:30;;4404:50;;;4450:1;4447;4440:12;4404:50;4473:49;4514:7;4505:6;4494:9;4490:22;4473:49;:::i;:::-;4463:59;;;4569:2;4558:9;4554:18;4541:32;4531:42;;4625:2;4614:9;4610:18;4597:32;4638:33;4663:7;4638:33;:::i;:::-;4006:697;;;;-1:-1:-1;4006:697:96;;-1:-1:-1;;4006:697:96:o;6196:544::-;6423:4;6452:42;6533:2;6525:6;6521:15;6510:9;6503:34;6585:2;6577:6;6573:15;6568:2;6557:9;6553:18;6546:43;;6625:3;6620:2;6609:9;6605:18;6598:31;6646:45;6686:3;6675:9;6671:19;6663:6;6646:45;:::i;:::-;6638:53;;6727:6;6722:2;6711:9;6707:18;6700:34;6196:544;;;;;;;:::o;6997:383::-;7154:3;7192:6;7186:13;7208:66;7267:6;7262:3;7255:4;7247:6;7243:17;7208:66;:::i;:::-;7296:16;;;;7321:21;;;-1:-1:-1;7369:4:96;7358:16;;6997:383;-1:-1:-1;6997:383:96:o","linkReferences":{}},"methodIdentifiers":{"calculateCreateProxyWithNonceAddress(address,bytes,uint256)":"2500510e","createProxy(address,bytes)":"61b69abd","createProxyWithCallback(address,bytes,uint256,address)":"d18af54d","createProxyWithNonce(address,bytes,uint256)":"1688f0b9","proxyCreationCode()":"53e5d935","proxyRuntimeCode()":"addacc0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract GnosisSafeProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"singleton\",\"type\":\"address\"}],\"name\":\"ProxyCreation\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"initializer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"}],\"name\":\"calculateCreateProxyWithNonceAddress\",\"outputs\":[{\"internalType\":\"contract GnosisSafeProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createProxy\",\"outputs\":[{\"internalType\":\"contract GnosisSafeProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"initializer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"},{\"internalType\":\"contract IProxyCreationCallback\",\"name\":\"callback\",\"type\":\"address\"}],\"name\":\"createProxyWithCallback\",\"outputs\":[{\"internalType\":\"contract GnosisSafeProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"initializer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"}],\"name\":\"createProxyWithNonce\",\"outputs\":[{\"internalType\":\"contract GnosisSafeProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyCreationCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyRuntimeCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{\"calculateCreateProxyWithNonceAddress(address,bytes,uint256)\":{\"details\":\"Allows to get the address for a new proxy contact created via `createProxyWithNonce` This method is only meant for address calculation purpose when you use an initializer that would revert, therefore the response is returned with a revert. When calling this method set `from` to the address of the proxy factory.\",\"params\":{\"_singleton\":\"Address of singleton contract.\",\"initializer\":\"Payload for message call sent to new proxy contract.\",\"saltNonce\":\"Nonce that will be used to generate the salt to calculate the address of the new proxy contract.\"}},\"createProxy(address,bytes)\":{\"details\":\"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\",\"params\":{\"data\":\"Payload for message call sent to new proxy contract.\",\"singleton\":\"Address of singleton contract.\"}},\"createProxyWithCallback(address,bytes,uint256,address)\":{\"details\":\"Allows to create new proxy contact, execute a message call to the new proxy and call a specified callback within one transaction\",\"params\":{\"_singleton\":\"Address of singleton contract.\",\"callback\":\"Callback that will be invoced after the new proxy contract has been successfully deployed and initialized.\",\"initializer\":\"Payload for message call sent to new proxy contract.\",\"saltNonce\":\"Nonce that will be used to generate the salt to calculate the address of the new proxy contract.\"}},\"createProxyWithNonce(address,bytes,uint256)\":{\"details\":\"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\",\"params\":{\"_singleton\":\"Address of singleton contract.\",\"initializer\":\"Payload for message call sent to new proxy contract.\",\"saltNonce\":\"Nonce that will be used to generate the salt to calculate the address of the new proxy contract.\"}},\"proxyCreationCode()\":{\"details\":\"Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.\"},\"proxyRuntimeCode()\":{\"details\":\"Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.\"}},\"title\":\"Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol\":\"GnosisSafeProxyFactory\"},\"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/proxies/GnosisSafeProxy.sol\":{\"keccak256\":\"0x3bfdd453d9f896f7029d15bcafd11886957b320ad1764309d9f74fa059715249\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://5b5b7d0c8a900ba758e012236bf1c55e885fe5716aa79f6f693d22c31c85f7d5\",\"dweb:/ipfs/QmUq5oNsZY1b5pcYAzrY1i9oqyPUaiFhLaEWgB9ML6LrBj\"]},\"lib/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol\":{\"keccak256\":\"0x187c6f84c71b432da6721c1b81cebfbb9c37c0cc15ebd8de5a14ff7ec6db2d9e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://cfe1ac5a4ba0475db666912d5b4397d8fae96342c27a47a664a881e24377ed38\",\"dweb:/ipfs/QmVcaZrvPbH2csouaU3r1quFtugC4AUeCbrzBBmXSYk9W6\"]},\"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol\":{\"keccak256\":\"0x51a9ce914a6a943651c803541e44218a7ed0a2f98a94d55df66b173b5a11e365\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://5216ed8181c14d462ec821593c8f90f33c7dbe8b4c505a1092bf31a9d33132b9\",\"dweb:/ipfs/Qmbb2wkgijuTcEbGR7CnmiAtwZDyruQ2b1ged4HnLysQnT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract GnosisSafeProxy","name":"proxy","type":"address","indexed":false},{"internalType":"address","name":"singleton","type":"address","indexed":false}],"type":"event","name":"ProxyCreation","anonymous":false},{"inputs":[{"internalType":"address","name":"_singleton","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"calculateCreateProxyWithNonceAddress","outputs":[{"internalType":"contract GnosisSafeProxy","name":"proxy","type":"address"}]},{"inputs":[{"internalType":"address","name":"singleton","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"createProxy","outputs":[{"internalType":"contract GnosisSafeProxy","name":"proxy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_singleton","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"},{"internalType":"contract IProxyCreationCallback","name":"callback","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProxyWithCallback","outputs":[{"internalType":"contract GnosisSafeProxy","name":"proxy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_singleton","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createProxyWithNonce","outputs":[{"internalType":"contract GnosisSafeProxy","name":"proxy","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"proxyCreationCode","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"proxyRuntimeCode","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"calculateCreateProxyWithNonceAddress(address,bytes,uint256)":{"details":"Allows to get the address for a new proxy contact created via `createProxyWithNonce` This method is only meant for address calculation purpose when you use an initializer that would revert, therefore the response is returned with a revert. When calling this method set `from` to the address of the proxy factory.","params":{"_singleton":"Address of singleton contract.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"createProxy(address,bytes)":{"details":"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.","params":{"data":"Payload for message call sent to new proxy contract.","singleton":"Address of singleton contract."}},"createProxyWithCallback(address,bytes,uint256,address)":{"details":"Allows to create new proxy contact, execute a message call to the new proxy and call a specified callback within one transaction","params":{"_singleton":"Address of singleton contract.","callback":"Callback that will be invoced after the new proxy contract has been successfully deployed and initialized.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"createProxyWithNonce(address,bytes,uint256)":{"details":"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.","params":{"_singleton":"Address of singleton contract.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"proxyCreationCode()":{"details":"Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address."},"proxyRuntimeCode()":{"details":"Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol":"GnosisSafeProxyFactory"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/proxies/GnosisSafeProxy.sol":{"keccak256":"0x3bfdd453d9f896f7029d15bcafd11886957b320ad1764309d9f74fa059715249","urls":["bzz-raw://5b5b7d0c8a900ba758e012236bf1c55e885fe5716aa79f6f693d22c31c85f7d5","dweb:/ipfs/QmUq5oNsZY1b5pcYAzrY1i9oqyPUaiFhLaEWgB9ML6LrBj"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol":{"keccak256":"0x187c6f84c71b432da6721c1b81cebfbb9c37c0cc15ebd8de5a14ff7ec6db2d9e","urls":["bzz-raw://cfe1ac5a4ba0475db666912d5b4397d8fae96342c27a47a664a881e24377ed38","dweb:/ipfs/QmVcaZrvPbH2csouaU3r1quFtugC4AUeCbrzBBmXSYk9W6"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol":{"keccak256":"0x51a9ce914a6a943651c803541e44218a7ed0a2f98a94d55df66b173b5a11e365","urls":["bzz-raw://5216ed8181c14d462ec821593c8f90f33c7dbe8b4c505a1092bf31a9d33132b9","dweb:/ipfs/Qmbb2wkgijuTcEbGR7CnmiAtwZDyruQ2b1ged4HnLysQnT"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.pm>","methods":{"calculateCreateProxyWithNonceAddress(address,bytes,uint256)":{"details":"Allows to get the address for a new proxy contact created via `createProxyWithNonce` This method is only meant for address calculation purpose when you use an initializer that would revert, therefore the response is returned with a revert. When calling this method set `from` to the address of the proxy factory.","params":{"_singleton":"Address of singleton contract.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"createProxy(address,bytes)":{"details":"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.","params":{"data":"Payload for message call sent to new proxy contract.","singleton":"Address of singleton contract."}},"createProxyWithCallback(address,bytes,uint256,address)":{"details":"Allows to create new proxy contact, execute a message call to the new proxy and call a specified callback within one transaction","params":{"_singleton":"Address of singleton contract.","callback":"Callback that will be invoced after the new proxy contract has been successfully deployed and initialized.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"createProxyWithNonce(address,bytes,uint256)":{"details":"Allows to create new proxy contact and execute a message call to the new proxy within one transaction.","params":{"_singleton":"Address of singleton contract.","initializer":"Payload for message call sent to new proxy contract.","saltNonce":"Nonce that will be used to generate the salt to calculate the address of the new proxy contract."}},"proxyCreationCode()":{"details":"Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address."},"proxyRuntimeCode()":{"details":"Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed."}},"title":"Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction."},"ast":{"absolutePath":"lib/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol","id":51573,"exportedSymbols":{"GnosisSafeProxy":[51325],"GnosisSafeProxyFactory":[51572],"IProxy":[51294],"IProxyCreationCallback":[51588]},"nodeType":"SourceUnit","src":"42:5785:62","nodes":[{"id":51327,"nodeType":"PragmaDirective","src":"42:31:62","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":51328,"nodeType":"ImportDirective","src":"75:31:62","nodes":[],"absolutePath":"lib/safe-contracts/contracts/proxies/GnosisSafeProxy.sol","file":"./GnosisSafeProxy.sol","nameLocation":"-1:-1:-1","scope":51573,"sourceUnit":51326,"symbolAliases":[],"unitAlias":""},{"id":51329,"nodeType":"ImportDirective","src":"107:38:62","nodes":[],"absolutePath":"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol","file":"./IProxyCreationCallback.sol","nameLocation":"-1:-1:-1","scope":51573,"sourceUnit":51589,"symbolAliases":[],"unitAlias":""},{"id":51572,"nodeType":"ContractDefinition","src":"324:5502:62","nodes":[{"id":51337,"nodeType":"EventDefinition","src":"362:62:62","nodes":[],"anonymous":false,"eventSelector":"4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235","name":"ProxyCreation","nameLocation":"368:13:62","parameters":{"id":51336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51333,"indexed":false,"mutability":"mutable","name":"proxy","nameLocation":"398:5:62","nodeType":"VariableDeclaration","scope":51337,"src":"382:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"},"typeName":{"id":51332,"nodeType":"UserDefinedTypeName","pathNode":{"id":51331,"name":"GnosisSafeProxy","nameLocations":["382:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":51325,"src":"382:15:62"},"referencedDeclaration":51325,"src":"382:15:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},"visibility":"internal"},{"constant":false,"id":51335,"indexed":false,"mutability":"mutable","name":"singleton","nameLocation":"413:9:62","nodeType":"VariableDeclaration","scope":51337,"src":"405:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51334,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"381:42:62"}},{"id":51368,"nodeType":"FunctionDefinition","src":"675:462:62","nodes":[],"body":{"id":51367,"nodeType":"Block","src":"773:364:62","nodes":[],"statements":[{"expression":{"id":51354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51348,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51346,"src":"783:5:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51352,"name":"singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51340,"src":"811:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"791:19:62","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_GnosisSafeProxy_$51325_$","typeString":"function (address) returns (contract GnosisSafeProxy)"},"typeName":{"id":51350,"nodeType":"UserDefinedTypeName","pathNode":{"id":51349,"name":"GnosisSafeProxy","nameLocations":["795:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":51325,"src":"795:15:62"},"referencedDeclaration":51325,"src":"795:15:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}}},"id":51353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"791:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},"src":"783:38:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},"id":51355,"nodeType":"ExpressionStatement","src":"783:38:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51356,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51342,"src":"835:4:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"840:6:62","memberName":"length","nodeType":"MemberAccess","src":"835:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":51358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"835:15:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51361,"nodeType":"IfStatement","src":"831:254:62","trueBody":{"AST":{"nodeType":"YulBlock","src":"933:152:62","statements":[{"body":{"nodeType":"YulBlock","src":"1019:52:62","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1048:1:62","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1051:1:62","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1041:6:62"},"nodeType":"YulFunctionCall","src":"1041:12:62"},"nodeType":"YulExpressionStatement","src":"1041:12:62"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"962:3:62"},"nodeType":"YulFunctionCall","src":"962:5:62"},{"name":"proxy","nodeType":"YulIdentifier","src":"969:5:62"},{"kind":"number","nodeType":"YulLiteral","src":"976:1:62","type":"","value":"0"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"983:4:62"},{"kind":"number","nodeType":"YulLiteral","src":"989:4:62","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"979:3:62"},"nodeType":"YulFunctionCall","src":"979:15:62"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1002:4:62"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"996:5:62"},"nodeType":"YulFunctionCall","src":"996:11:62"},{"kind":"number","nodeType":"YulLiteral","src":"1009:1:62","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1012:1:62","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"957:4:62"},"nodeType":"YulFunctionCall","src":"957:57:62"},{"kind":"number","nodeType":"YulLiteral","src":"1016:1:62","type":"","value":"0"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"954:2:62"},"nodeType":"YulFunctionCall","src":"954:64:62"},"nodeType":"YulIf","src":"951:120:62"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":51342,"isOffset":false,"isSlot":false,"src":"1002:4:62","valueSize":1},{"declaration":51342,"isOffset":false,"isSlot":false,"src":"983:4:62","valueSize":1},{"declaration":51346,"isOffset":false,"isSlot":false,"src":"969:5:62","valueSize":1}],"id":51360,"nodeType":"InlineAssembly","src":"924:161:62"}},{"eventCall":{"arguments":[{"id":51363,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51346,"src":"1113:5:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},{"id":51364,"name":"singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51340,"src":"1120:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"},{"typeIdentifier":"t_address","typeString":"address"}],"id":51362,"name":"ProxyCreation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51337,"src":"1099:13:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_GnosisSafeProxy_$51325_$_t_address_$returns$__$","typeString":"function (contract GnosisSafeProxy,address)"}},"id":51365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51366,"nodeType":"EmitStatement","src":"1094:36:62"}]},"documentation":{"id":51338,"nodeType":"StructuredDocumentation","src":"430:240:62","text":"@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param singleton Address of singleton contract.\n @param data Payload for message call sent to new proxy contract."},"functionSelector":"61b69abd","implemented":true,"kind":"function","modifiers":[],"name":"createProxy","nameLocation":"684:11:62","parameters":{"id":51343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51340,"mutability":"mutable","name":"singleton","nameLocation":"704:9:62","nodeType":"VariableDeclaration","scope":51368,"src":"696:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51339,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51342,"mutability":"mutable","name":"data","nameLocation":"728:4:62","nodeType":"VariableDeclaration","scope":51368,"src":"715:17:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51341,"name":"bytes","nodeType":"ElementaryTypeName","src":"715:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"695:38:62"},"returnParameters":{"id":51347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51346,"mutability":"mutable","name":"proxy","nameLocation":"766:5:62","nodeType":"VariableDeclaration","scope":51368,"src":"750:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"},"typeName":{"id":51345,"nodeType":"UserDefinedTypeName","pathNode":{"id":51344,"name":"GnosisSafeProxy","nameLocations":["750:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":51325,"src":"750:15:62"},"referencedDeclaration":51325,"src":"750:15:62","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafeProxy_$51325","typeString":"contract GnosisSafeProxy"}},"visibility":"internal"}],"src":"749:23:62"},"scope":51572,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51380,"nodeType":"FunctionDefinition","src":"1277:120:62","nodes":[],"body":{"id":51379,"nodeType":"Block","src":"1340:57:62","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":51375,"name":"GnosisSafeProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51325,"src":"1362:15:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GnosisSafeProxy_$51325_$","typeString":"type(contract GnosisSafeProxy)"}}],"expression":{"argumentTypes":[{"typeIdenti